Como imprimir un informe una vez filtrado

Tengo un formulario el cual contiene un subformulario, he creado un informe de una consulta para imprimir pero el detalle está en que debo imprimir es el resultado de un filtro que aplico a los datos del subformulario y al tratar de imprimir me muestra todos los registros de la consulta y no encuentro como actualizar el informe para poder imprimir el resultado del filtro.

2 Respuestas

Respuesta
1

Creo que la respuesta es más simple de lo que piensas...

¿Por qué no aplicas los datos del filtro directamente sobre la consulta?

En caso de que esto no sea posible, puedes crear una consulta de una consulta, con lo cuál, ahí si que puedes aplicar los datos del filtro y basar tu informe en la segunda consulta, no en la primera.

Imagino que la respuesta de Jacinto también será válida, pero en esta que yo te propongo, no tienes que tocar ni una sola linea de código y la generación del filtro es mucho más cómoda y sencilla sobre una consulta, que programandola... (por aquello de tener en cuenta si son datos caracter y aplicarle las comillas correspondientes)

Un saludo... Y ya me cuentas...

Respuesta
2

Rafael: Supongo que el Filtro lo tienes en el SubFormulario.

Declara el Nombre del FiltroTotal como una variable String, sacándola de cualquier Procedimiento o Función. O sea en la Cabecera del Código asociado, después de >>

Option Compare Database

Option Explicit

Dim NombreDeTuFiltroGeneral As String

En el Procedimiento donde mandes imprimir el Informe >>

DoCmd. OpenReport "NombreInforme", acPreview,, NombreDeTuFiltroGeneral

Un saludo >> Jacinto

Seguí las instrucciones que me indicaste pero me sigue dando el mismo resultado, ahora cuando tu dices que el filtro esta en el subformulario no entiendo bien, pero te explico el filtro lo aplico a través de un comando en el evento al hacer clic pero los txt y en comando para el filtro están en el formulario principal no se si esto tiene que ver 

Entonces Rafael. Has de hacer lo mismo que te indico en mi respuesta pero desde el Formulario Principal. Un saludo >> Jacinto

Buenas tardes coloque la información según lo indicado y sigue dando el mismo resultado a continuación coloque copie y pegue el código que tengo en el formulario principal a ver si se facilita la ayuda 

Option Compare Database
Option Explicit
Dim FiltroFechas As String


Private Sub BUSCAR_Click()
Dim FiltroFechas As String
FiltroFechas = "[FECHA_CRED] BETWEEN #" & Format(Nz(Me.[FECHA_INI], #1/1/1900#), "mm/dd/yyyy") & _
"# AND #" & Format(Nz(Me.[FECHA_FIN], #12/31/9999#), "mm/dd/yyyy") & "#"

Me.PRUEBA.Form.Filter = FiltroFechas
Me.PRUEBA.Form.FilterOn = True

End Sub

Private Sub Comando35_Click()
DoCmd.OpenReport "INF_CRED_MES", acViewPreview, , FiltroFechas

End Sub

Private Sub Form_Load()
Me.FECHA_INI.SetFocus
End Sub

Rafael: Dando por supuesto que los Nombres deel Informe y su Fuente de datos se llamen igual, lo unico que veo, es que duplicas la declaración de la Variable.

Te sobra la línea debajo de Private Sub BUSCAR_Click()

Dim FiltroFechas As String  >> Porque ya la tienes en la Cabecera

Debe mostrarte solo los Registros que te aparezcan en el SubForm PRUEBA.

Creo tener una copia de tu BD, pero por razones de tiempo de buscarla y probar no lo he hecho, pero si sigues con dificultades, me comentas. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas