Acceder a consulta en una condición después de haber hecho la QWERY

Quiero ver el valor de una Qwery para compararlo con una condición de fecha:

Set db = CurrentDb
Do
strSQL = "SELECT (FechaLibre) FROM DiasLibres WHERE DiasLibres.FechaLibre = #" & vFechaEntrega
strSQL = strSQL + "#"
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)
If AQUI QUIERO LA CONDICION Then
End If
Loop Until vCuentaDias <= 46
Rs. Close
Db. Close

No se si desde el principio esta mal construida mi cadena que mando a SQL, pero donde quiero hacer la condición es una comparación entre la fecha que regrese y la fecha actual.

1 respuesta

Respuesta
1

En principio la SQL la tienes bien construida (aunque quizás se podría mejorar pasando la fecha en formato americano, para evitar problemas).

Para hacer la comparación, tienes que coger el valor del campo en el recordset de alguna de las siguientes formas:

Rs("FechaLibre")

Rs! FechaLibre

Rs(0)

Y ya puedes comparar con la fecha actual:

If Rs("FechaLibre")>Date Then....

Ahora bien, el código que pones (si es que es el código completo), tiene algunos problemas:

¿Es necesario hacer un Do While para la comparación si la SQL es siempre la misma? Yo creo que no...

Aún cuando fuera necesario por las razones que fueran, si dentro del bucle Do no incrementas el contador (vCuentaDias), lo más probable es que entres en un bucle infinito con el resultado de que se te cuelgue Access y el propio PC.

Si tu SQL devuelve siempre un único registro (un valor único de FechaLibre) puedes usar la función DLookUp() para obtenerlo en vez de un recordset, por ejemplo:

vFechaLibre=DLookUp("FechaLibre","DiasLibres","FechaLibre=#" & vFechaEntrega & "#")

Y luego comparas vFechaLibre con Date.

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas