imprimir formulario filtrado desde informe

07/06/2012 - 09:54 por Victor | Informe spam
Buenos dias. Office 2010
Tengo un formulario (que se nutre de una consulta)con su "vista predeterminada" en "Hoja de datos" el cual aplico filtros (como si de una hoja de excel se tratara) y deseo que este filtrado poderlo imprimir (claro, atraves de un informe). Como esta en Hoja de Datos, lo que hago es crear otro formulario, donde incrusto el subformulario y le añado un botón. Conseguir que este botón me abra el informe no es un problema (el informe es copia exacta del subformulario que filtro), pero mi problema esta en que no consigo que el informe me muestre a imprimir los campos filtrados, sino que me los muestra todos (perdiendo su funciona en este caso).

He estado mirando mucho, lo he hecho de varias maneras y en varias ocasiones (con lo cual he aprendido mucho y visto varias formas) y ultimamente he visto una atraves de codigo apareciendo este codigo modelo como una buena opción, pero... no consigo que me funcione.

¿Alguien me podría ayudar? Dado que no encuentro el hilo que lo detallen hasta el punto de que yo lo pueda reproducir satisfactoriamente.

El codigo que intento y no me funciona:

Private Sub Comando20_Click()
Dim criterio As String
If Me.FilterOn Then
criterio = Me.Filter
Else
criterio = ""
End If
DoCmd.OpenReport "Inf_ListadoCURSOS", acViewPreview, criterio
End Sub

Como detalle decir lo siguiente (uno ya no sabe si esto pueda ser de ayuda):
La consulta se nutre de 3 tablas conectadas. No me da esto problemas en ningun otro sitio (es decir, tengo una tabla "pacientes" otra "telefonos" y otra "tratamientos" de tal forma que cada paciente tiene asociado 1 o varios telefonos y a su vez 1 o varios tratamientos).

Gracias

Preguntas similare

Leer las respuestas

#11 José Mª Fueyo
08/06/2012 - 09:50 | Informe spam
Lo siento, pero aquí no tengo 2010, y en casa últimamente no tengo tiempo para nada.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#12 Victor
08/06/2012 - 10:11 | Informe spam
Bueno, intentaba convertirlo a mdb pero no me deja (dice que uso cosas de la v2010).
¿Alguna idea de que me dejo para ver los resultados del Debug. print?

Gracias
Respuesta Responder a este mensaje
#13 José Mª Fueyo
08/06/2012 - 10:45 | Informe spam
Hola
Para ver el valor de esa variable, que contiene el filtro aplicado, también podrías usar un msgbox

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#14 Victor
08/06/2012 - 11:22 | Informe spam
He modificado asi el codigo

Private Sub Comando127_Click()
Dim criterio As String
If Me.FilterOn Then
criterio = Me.Filter
Else
criterio = ""
End If
MsgBox criterio
DoCmd.OpenReport "IListC", acViewPreview, , criterio
End Sub

Y ahora me muestra una ventana con el valor de "criterio".
Y no me muestra nada. O sea, valor de criterio vacio.
No se si lo interpreto mal o que, pero criterio deberia tener como valor Me.Filter, no? Y deberia ser el filtro que se ha creado en el momento de darle al boton (si alguno). ¿no? Por lo que me deberia mostrar algo (y ahora no lo hace).

O yo he puesto mal la linea (o en lugar equivocado) o sencillamente esto no funciona porque el informe no llega a saber cuál es el filtro (que creo que es el objetivo).

ah! espera! Si hago un cambio en la linea y pongo esto en vez:

MsgBox Me.Filter

si que me muestra el filtro aplicado!!!
Por lo que entiendo ahora que el IF aplicado no funciona.

Veamos, tocando un poco. Modifico el codigo tal que asi:

Private Sub Comando127_Click()
Dim criterio As String
'If Me.FilterOn Then
criterio = Me.Filter
'Else
'criterio = ""
'End If
MsgBox Me.Filter
DoCmd.OpenReport "IListC", acViewPreview, , criterio
End Sub

Y esto me muestra el filtro en el MSGBOX y el informe ya me sale filtrado!! Lo que no veo claro es que me salga correctamente.

Vale, mirando mas, veo que el filtro que me muestra no es correcto. Claro que no va, lo que he aplicado en el form no es lo que se transmite al report.

¿Cómo puedo hacer para ver con codigo sql (o lo que sea) el filtro que le aplico al form?

Me parece que el tema (en este punto) esta en el Me.Filter (pues me enseña como el filtro que tiene el formulario al abrirlo, pero no asi el que yo le aplico manualmente cada vez).

¿Cómo puedo ver el codigo del filtro que le aplico a mano?

Yo le aplico un filtro manualmente al formulario, ¿dónde se guarda dicho filtro? Me parece claro que no lo hace en Me.Filter. ¿Dónde lo hace?

Gracias
Respuesta Responder a este mensaje
#15 José Mª Fueyo
08/06/2012 - 12:45 | Informe spam
Hola
La propiedad FilterOn ¿que valor tiene? parece que está a false ¿no?
Haz una ejecución con un punto de interrepción, paso a paso, para ver que valores va tomando.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida