¿Realizar consulta en Access con instrucción SQL? ¿Para calculo de días?

Tengo creada una consulta en Access para calcular los días que faltan para el cumpleaños de varias personas comparando la fecha de nacimiento con el día del año en curso... 2019.

La consulta esta creada ya y funciona.

Mi problema es que la quiero generar desde código VBA con una instrucción sql y me da errores y no puede interpretarla.

La instruccion sql en la misma consulta es:

SELECT DISTINCT DateDiff("d",Now,CDate(Day([Fecha de nacimiento]) & "/" & Month([Fecha de nacimiento]) & "/" & Year(Now))) AS [Dias que faltan], [Nombre y Apellido], [Fecha de nacimiento]
FROM [Perfil personal trabajador]
WHERE DateDiff("d",Now,CDate(Day([Fecha de nacimiento]) & "/" & Month([Fecha de nacimiento]) & "/" & Year(Now)))>=0
ORDER BY DateDiff("d",Now,CDate(Day([Fecha de nacimiento]) & "/" & Month([Fecha de nacimiento]) & "/" & Year(Now)));

********Ahora la envio desde codigo VBA y me ocurre esto*******

Me da fallo al escribirlo... He jugado con "'" como otras veces en diferentes instrucciones sql y no lo consigo esta vez...¿Podéis ayudarme? Gracias.

1 respuesta

Respuesta
2

Tienes un error, que vea a simple vista:

Al asignar la instrucción SQL a la variable sql (variable de texto), como se la tienes que pasar entre comillas dobles (sql=" cadena sql"), no puedes usar la comilla doble dentro de la propia sql, tienes que cambiarlas todas por comillas simples o por dobles comillas dobles, por ejemplo:

sql="SELECT DISTINCT DateDiff('d',Now,CDate(Day([Fecha de nacimiento]) & '/' & Month([Fecha de nacimiento]) & '/' & Year(Now))) AS [Dias que faltan]....."

ó

sql="SELECT DISTINCT DateDiff(""d"",Now,CDate(Day([Fecha de nacimiento]) & ""/"" & Month([Fecha de nacimiento]) & ""/"" & Year(Now))) AS [Dias que faltan]

Con ese pequeño ajuste, te debería funcionar.

Un saludo.


¡Gracias! 

...y funciona!!!

Gracias, estaba atascado y ayer estuve intenta-dolo lo menos una hora.

Cracias por compartir tu tiempo y know how

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas