Necesito filtrar entre fechas en un formulario

Estoy tratando de generar información filtrada entre dos fechas cree un formulario coloque dos cuadros de texto independientes y un botón con la intención de que a través de estos se pueda hacer el filtro. Yo genere un un informe y lo coloque dentro del formulario al cargar el formulario me muestra todos los registros existentes. Al colocar algunas instrucciones que vi no me funcionan y no he logrado hacerlo.

1 respuesta

Respuesta
2

Rafael: Suponiendo que tus dos cuadros de Texto se llamen DesdeFecha y HastaFecha en el código del Botón le pones:

Dim FiltroFechas As String
FiltroFechas = "LaFecha BETWEEN #" & Format(Nz(Me.DesdeFecha, #1/1/1900#), "mm/dd/yyyy") & _
                    "# AND #" & Format(Nz(Me.HastaFecha, #12/31/9999#), "mm/dd/yyyy") & "#"
Me.Filter = FiltroFechas
Me.FilterOn = True

LaFecha es el Nombre del Campo de la Tabla o Consulta que tiene el Formulario como Origen de Datos

El resto no lo entiendo muy bien, pero si quieres abrir un Informe sobre esos datos.

después de la línea de Me.FilterOn =True le pones

DoCmd. OpenReport "NombreDeTuInforme", acPreview,, FiltroFechas

Un saludo >> Jacinto

Buenas tardes

Jacinto disculpa pero lo que pasa es no me dedico a tiempo completo a trabajar en el proyecto de acces creo que debo empezar por decir que no conozco mucho de programación creo que primero debí preguntar por la forma de utilizar las consultas. Por ejemplo si genero una consulta como tal obtengo la información que quiero ahora quisiera crear un formulario que me permita filtrar la información, la pregunta es puedo crear un formulario y anexar la consulta como si fuera un subformulario o debo crear un formulario y en el origen del mismo crear la consulta y agregar los campos. la información debería verla como una hoja de datos. O pudiera trabajar con un informe que igual me da la información pero vuelvo nuevamente a la pregunta inicial como colocarlo en el formulario de manera que pueda filtrar la información por fechas, agradecido por la ayuda  

Disculpa olvide decir que la opción de generar el informe la utilice pero no es realmente lo que quiero, por supuesto la utilice sin filtrar entre fechas pero la verdad no es lo que necesito

Rafael: Para que te hagas una idea, mira si lo que necesitas está en la línea de éste ejemplo que tengo en Mediafire.

http://www.mediafire.com/file/zz1dw212k33mxet/FiltroA%C3%B1oActualYEntreFechas.rar 

Para que te devuelva registros, cambia las fechas, por ejemplo a datos del 2012 o 2013. Mira las que hay en la Tabla Productos. Un saludo >> Jacinto

Amigo para que tenga una mejor idea

en el botón de búsqueda coloque el siguiente código de cuerdo a lo que me enviaste

Private Sub BUSCAR_Click()
Dim FiltroFechas As String
FiltroFechas = "FECHA_CRED BETWEEN #" & [form PRUEBA_CONS]![Subformulario PRUEBA]!Format(Nz(Me.FECHA_INI, #1/1/1900#), "mm/dd/yyyy") & _
"# AND #" & [form PRUEBA_CONS]![Subformulario PRUEBA]!Format(Nz(Me.FECHA_FIN, #12/31/9999#), "mm/dd/yyyy") & "#"
Me.Filter = FiltroFechas
Me.FilterOn = True
End Sub

pero me da un error

Agradezco tu ayuda

Rafael: Te pongo las líneas modificadas, con comentarios.

Private Sub BUSCAR_Click()
Dim FiltroFechas As String
‘Este es el Filtro, independientemente de dónde lo apliquemos
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") & "#"
‘Y ahora se lo aplicamos al SubFormulario
Me![SubformularioPRUEBA].Filter = FiltroFechas
Me![SubformularioPRUEBA].FilterOn = True
End Sub

Repasa los Nombres de todos los controles, Campos de Tabla, Nombre del SubFormulario....

Mis saludos >> Jacinto

Buenas tardes jacinto ya coloque el código en el botón buscar con las observaciones que me indicaste pero ahora me da un error que dice que el objeto no admite el filtro busque en las propiedades del formulario y todo parece estar bien si me puedes indicar alguna sugerencia  

Rafael: Ignoro si habrá otro error de Nombres o de otro tipo pero de momento has hecho solo parte de lo que te comenté.

El Me.FilterOn = True sigue significando que el filtro se lo quieres Aplicar al Formulario principal.

Lee por favor de nuevo mi respuesta y si sigues con problemas, me comentas.

Y una Observación >> Evita los Nombres Largos, separados, con acentos y todo lo que huela a caracteres especiales. Los nombres de los Objetos de Access no son para presentar en un concurso de Ortografía. Si pones Definicion en un Nombre de Campo, es mejor para VBA que Definición. Y como SubFormulario es Mejor >> SubFP03 que Subformulario PRUEBA3, porque éste último. "obligatoriamente" ha de ir entre Corchetes y SubFP03 no. Un saludo >> Jacinto

Buenas Noches, seguí tu consejo leí y revise con calma tenias razón yo estaba haciendo mal las cosas cambie el nombre del sub formulario pero ahora el objeto (PRUEBA) no tiene la función o metodo de filter me sale es la función de FilterOnEmptyMaster y no se si esta me sirva al utilizarla de todas formas me sale un error que dice que no coinciden los tipos aquí te dejo el código que estoy utilizando

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.Filter = FiltroFechas
Me.PRUEBA.FilterOn = True

End Sub

al usarlo de esta forma el mensaje de error me dice que no encontró el método o el dato miembro. Te agradezco cualquier información adicional que me pueda ayudar a solucionar 

gracias

Rafael: Si después de todo lo escrito, no hemos salido del atasco, veo difícil que salgamos.

Mándame si quieres tu BD, con algunos datos inventados a [email protected] y miro que puede ocurrir. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas