Consulta de parámetros entre dos fechas en Access

Tengo una consulta para obtener los registros entre dos fechas, que incluya los extremos. Resulta que el primer extremo (Fecha Inicial) lo toma por defecto, sin problema, pero el segundo extremo (Fecha Final) no lo toma. La consulta arroja el resultado hasta el día anterior a la Fecha Final. No logro entender porque sucede esto.

1 respuesta

Respuesta
1

Una de las posibilidades, es que esa fecha tenga parte horaria, (las fechas sin parte horaria aplican las 0:00).

Si es el caso:

Antes ==>  Fecha_Final
Después ==>> Int(Fecha_Final)

¡Gracias! 

Gracias amigo Feijo!....Voy a intentar eso...... Debería funcionar... Gracias...

No funcionó, la sintaxis en la zona de criterios de la consulta no me ayuda. Revisé el formato de la fecha tanto en la tabla base como  en la consulta y les puse ¨Fecha corta¨ para igualar los formatos, pero continua el problema en la fecha final..... ¿Por qué la fecha inicial no tiene ese problema? Gracias por el la atención amigo....

Logré resolver el asunto. Todo el problema era el formato de fecha. Parece que, por defecto, Access lo trae con fecha y hora, como Ahora(), lo que produce la necesidad de colocar las fechas de inicio y fin con la hora de inicio y fin..... Para resolver esto, basta con colocar como valor predeterminado en la tabla de origen, en el campo Fecha, el valor Fecha() que no considera la hora y listo.... Saludos! Gracias a todos los amigos que me ayudaron en este asunto... Un abrazo!

Para poder analizar la sintaxis empleada en los criterios, tendrías que haberla publicado (si aun existe la duda, publícala y tendrás una alternativa más para la próxima vez antes de modificar el diseño).
¿Por qué funciona con la inicial y no con la final?

Porque a la inicial se le solicita 'que sea mayor que':
Si el comienzo son las cero horas, un segundo más (0:01) se cumple la condición (0:01 > 0:00

La final tiene la condición inversa 'que sea menor que'
La referencia son las (0:00) un segundo más tarde (0:01) no la cumple (0:01 < 0:00).

Si la fecha que se toma como referente no tiene parte horaria y la fecha (en este caso la final) tampoco tiene parte horaria, la condición (<=) tendría que cumplirse.

En la ventana de inmediato:

F_Referencia = Date()  'asignamos valores sin parte horaria
F_Final = Now()   'asignamos valores con parte horaria

?F_Referencia, F_Final, Int (F_Final)   'mostramos los valores
31/08/2022                    31/08/2022 10:04:43                   31/08/2022

'Hacemos unas comparaciones invirtiendo los términos, aplicando y sin aplicar Int

?F_Referencia < F_Final, F_Referencia = F_Final, F_Referencia <= F_Final
Verdadero             Falso                    Verdadero

?F_Referencia < Int(F_Final), F_Referencia = Int(F_Final), F_Referencia <= Int(F_Final)
Falso         Verdadero             Verdadero

?F_Final > F_Referencia, F_Final= F_Referencia, F_Final <= F_Referencia
Verdadero              Falso               Falso

?Int(F_Final) > F_Referencia ,Int(F_Final)= F_Referencia, Int(F_Final) >= F_Referencia
Falso                Verdadero                 Verdadero

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas