Access - Error Rango de Fechas en Access ASP

 
Vista:

Error Rango de Fechas en Access ASP

Publicado por belen (1 intervención) el 14/02/2002 13:11:38
hola, tengo el siguiente problema:

He probado muchas combinaciones, pero no logro que funcione.
Tabla: castellano.
Campo que quiero: FechaProducto, tipo Fecha/corta.
sql, desde ASP:
sql="SELECT * FROM castellano WHERE FechaProducto IN ( SELECT FechaProducto FROM castellano WHERE FechaProducto BETWEEN " _
& " #" & mesbuscado & "/01/" & anobuscado & "# AND " _
& " #" & mesbuscado & "/31/" & anobuscado & "# ) ORDER BY FechaProducto DESC;"

Ob_RS.Open Sql,Ob_Conn,adOpenStatic,adCmdTable

donde
Set Ob_Conn = Server.CreateObject("ADODB.Connection")
Set Ob_RS= Server.CreateObject("ADODB.RecordSet")
Ob_Conn.Open "nombre.con"

Error obtenido:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la fecha en la expresión de consulta

'FechaProducto BETWEEN #2/1/2002# AND #2/31/2002#'.

Gracias Por adelantado. Belen
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
Imágen de perfil de Alejandro

Error Rango de Fechas en Access ASP

Publicado por Alejandro (4142 intervenciones) el 20/04/2023 01:14:32
Hola Belén.

El error que estás obteniendo es porque estás intentando usar la fecha "31 de febrero" en tu consulta, lo cual no es una fecha válida.

Para solucionar este problema, debes modificar la parte de tu consulta que define la fecha final para que utilice el último día del mes en lugar de una fecha específica. Puedes hacerlo de la siguiente manera:

1
2
3
sql="SELECT * FROM castellano WHERE FechaProducto IN ( SELECT FechaProducto FROM castellano WHERE FechaProducto BETWEEN " _
& " #" & mesbuscado & "/01/" & anobuscado & "# AND " _
& " #" & DateSerial(anobuscado, mesbuscado + 1, 0) & "# ) ORDER BY FechaProducto DESC;"

En esta consulta, la función DateSerial se utiliza para obtener el último día del mes en lugar de una fecha específica. La expresión "mesbuscado + 1" se utiliza para obtener el mes siguiente al que estás buscando, y el valor "0" se utiliza para obtener el último día del mes anterior.

Espero que esto te ayude a solucionar tu problema.
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