Problema con criterios de filtro en consulta Access

Necesito de su ayuda con unos filtros que estoy haciendo a una consulta y que dependen de lo que se coloque en los cuadros de texto del formulario.

En los criterios de búsqueda de la consulta tengo lo siguiente:

Entre [Formularios]![frmProgramacion]![txt_Fecha_Ini] Y [Formularios]![frmProgramacion]![txt_Fecha_Fin]

Entre [Formularios]![frmProgramacion]![txt_Hora_Ini] Y [Formularios]![frmProgramacion]![txt_Hora_Fin]

[Formularios]![frmProgramacion]![txt_identificacion_buscar]

Si en los campos del formulario, lleno todos los campos, si se filtra correctamente la consulta.

El problema esta en que no me permite realizar la búsqueda por las siguientes opciones:

  1. Solo por identificación (txt_identificacion_buscar)
  2. solo por fechas (txt_Fecha_Ini y txt_Fecha_Fin)
  3. Por fechas y la identificación(txt_identificacion_buscar - txt_Fecha_Ini y txt_Fecha_Fin)
  4. Por horas y la identificación(txt_identificacion_buscar - txt_Hora_Ini y txt_Hora_Fin)
  5. Por todos los campos

Intente, moviendo algunos criterios a la opción "o:", pero no funciono(AND y OR):

Lo que se me ocurrió, es hacer es hacer 5 consultas y en cada una colocar los criterios para poder obtener los resultados de las búsquedas que anteriormente mencione :

  1. Solo por identificación

  1. solo por fechas

Desde el formulario pensé en colocar un botón con validaciones y se ejecute la consulta que necesito.

Es lo único que se me acaba de ocurrir, pero si alguien conoce una mejor idea se lo agradezco.

Y como siempre agradecido de la ayuda que me puedan brindar

1 Respuesta

Respuesta
1

Yo haría los filtros por código, pero con la consulta que ya tienes también lo puedes hacer fácilmente, poniendo los criterios en la misma fila, pero así:

Entre Nz([Formularios]![frmProgramacion]![txt_Fecha_Ini],#01/01/1900#) Y Nz([Formularios]![frmProgramacion]![txt_Fecha_Fin],#01/01/3000#)

Entre Nz([Formularios]![frmProgramacion]![txt_Hora_Ini],#00:00:00#) Y Nz([Formularios]![frmProgramacion]![txt_Hora_Fin],#23:59:59#)

Como Nz([Formularios]![frmProgramacion]![txt_identificacion_buscar],"*")

Así, si solo pones por ejemplo un identificador, de devolverá los registros de ese identificador entre el 1 de enero del 19000 y el 1 de enero del año 3000 (o sea todos), y lo mismo con las horas (entre las 00:00:00 y las 23:59:59 estarán todos los registros de ese identificador)

Si solo pones fechas, te devolverá los registros de cualquier identificador (por el Como "*") y de cualquier hora

¡Gracias! Voy hacer lo que me indicas y te aviso como me fue!! 

Por código como serían los filtros? Es que me gusta conocer nuevas formas de hacer las cosas

¡Gracias! 

Voy a dejarla con tu primer opción  que me brindaste:

Entre Nz([Formularios]![frmProgramacion]![txt_Fecha_Ini],#01/01/1900#) Y Nz([Formularios]![frmProgramacion]![txt_Fecha_Fin],#01/01/3000#)

Es que esa consulta debo exportarla a Excel  y tengo una macro lista.

Te agradezco la ayuda!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas