Comparar fechas en Access

Cyttorak
31 de Agosto del 2004
Tengo esta select:

Select distinct [EMPLEADOS].[NOMBRE_Y_APELLIDOS], [EMPLEADOS].[DNI], [EMPLEADOS].[COD_EMPRESA], [EMPLEADOS].[TLF_FIJO], [EMPLEADOS].[TLF_MOVIL], [EMPLEADOS].[CORREO_ELECTRONICO]
FROM EMPLEADOS Left JOIN
(
Select distinct [EMPLEADOS].[DNI]
FROM EMPLEADOS INNER JOIN PARTICIPA_EN ON (EMPLEADOS.DNI=PARTICIPA_EN.DNI)
WHERE (
(PARTICIPA_EN.FECHA_DE_FIN >= " & Me!Fecha_de_inicio & " AND PARTICIPA_EN.FECHA_DE_FIN <= " & Me!Fecha_de_fin & ")
OR
(PARTICIPA_EN.FECHA_DE_INICIO <= " & Me!Fecha_de_fin & " AND PARTICIPA_EN.FECHA_DE_INICIO >= " & Me!Fecha_de_inicio & ")
)
) As T2 On (EMPLEADOS.DNI=T2.DNI)
WHERE (EMPLEADOS.PUESTO_DE_TRABAJO='" & Me!PUESTO_DE_TRABAJO & "' AND T2.DNI Is Null AND EMPLEADOS.ACTIVO = 0)

Y no estoy seguro de que la parte de comparar las fechas se haga bien (de hecho no funciona bine?

¿Como se comparan correctamente las fechas en acces?

Rodolfo Reyes
31 de Agosto del 2004
1) para ahorrar un poco de codigo puedes utilizar el Between.

Ejemplo: fecha between fecha1 and fecha2

Lo anterior es como si uvieras escrito:
fecha >= fecha1 and
fecha <= fecha2

2) Ha mi me parace que si estas haciendo bien las comparaciones. Lo que te puede estar pasando es algo que a veces me ha pasado, en algunos casos he tenido problemas cuando utilizo fechas que estan en un formulario. Por ejemplo en el formulario miras 01/01/2004, pero al utilizar este campo como parametro en un query por alguna razon no utiliza el formato de 4 digitos para el año si no que dos digitos, y esto probaque que a veces cuando pones 2004 utilize 0004. Para solucionar esto busca en la ayuda como especificar el formato de fecha(existe una funcion ha la que le envias un texto y te convierte este texto en un formato de fecha especifico. En tonces cuando me ha dado este problema, utilizo esta función para garantizar que utiliza 4 digitos para el año.

Prueba con lo anterior, tal vez tengas el mismo problema.