Access - Trabajar con fechas

   
Vista:

Trabajar con fechas

Publicado por Antonio L (6 intervenciones) el 20/08/2015 10:43:21
Buenos días a todos. Tengo una base de datos de clientes en la que hay un campo con fecha de nacimiento, de formato 20/08/2015, y necesito crear una consulta para ver los clientes que cumplen años, por ejemplo hoy mismo, ¿quién me puede ayudar. Muchas gracias

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Trabajar con fechas

Publicado por Enrique Heliodoro (1663 intervenciones) el 20/08/2015 10:55:29
Hoy (20 de agosto de 2015) se puede expresar como una cifra sin el año:

Format (Date(), "MMDD") ==> "0820"

De igual forma se puede expresar la fecha de nacimiento:
Format ([fecha de nacimiento], "MMDD") = ????

Se comparan ambas cadenas de texto y de la igualdad se extraen resultados:
IF Format (Date(), "MMDD") = Format ([fecha de nacimiento], "MMDD") Then ......

Un true ==> invitado a pastel
Un false ==> será en otra ocasión
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Trabajar con fechas

Publicado por Antonio L (6 intervenciones) el 21/08/2015 12:17:04
Gracias Enrique por t u respuesta pero hay algo que no entiendo, soy un poco nuevo en esto, cuando dices

IF Format (Date(), "MMDD") = Format ([fecha de nacimiento], "MMDD") Then ......


Then .... ¿Qué sigue?

He puesto en consulta Expr1: Format(Fecha();"dd/mm")=Format([Fecha de nacimiento];"dd/mm") y el resultado que me da en todos los campos es 30/12/1899, no se que estoy haciendo mal o lo estoy poniendo en lugar erróneo.

Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Trabajar con fechas

Publicado por Enrique Heliodoro (1663 intervenciones) el 21/08/2015 23:04:12
Es una respuesta que cabria esperar, asumiendo que el referente es correcto (la fecha de nacimiento) , una comparación devuelve un si o un no, 'SI' (en Access) se guarda como : -1, 'No' se guarda como un cero.

Y ahora el lio....
Si se muestra esa respuesta en formato de fecha, devolverá la fecha del día cero de Access que es:
(en la ventana de inmediato)
?Format (0,"dd/mm/yyyy")
30/12/1899


y si el resultado fuera un true (o -1) tenemos:
?Format (true,"dd/mm/yyyy")
29/12/1899
?Format (-1,"dd/mm/yyyy")
29/12/1899

Asi que dejémonos de inventos y aceptemos el true/false como la respuesta si/no a si hoy alguien cumple años (esto es, que el formato del campo sea el adecuado para mostrar un verdadero/falso)

Por cierto detrás del Then vendría algo que se ejecutaría si se cumple (por ejemplo: MsgBox "Hoy cumple años " & Nombre)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar