Access SQL consulta de lapso de fecha y hora no me funciona con variables Ayuda!

Requiero hacer una consulta que me muestre los registros de un lapso de tiempo con hora

Tengo cuatro cuadros de texto donde se recoge los criterios:

txtFECHA_INIC

txtFECHA_TERMI

TxtHoraIni

TxtHoraTerm

patosql = "SELECT Sum([Total])AS SumaTotal FROM CORTE_COMPRAS WHERE Fecha BETWEEN #" & Format(txtFECHA_INIC.Value, "mm/dd/yyyy") & " 20:11:00# AND #" & Format(txtFECHA_TERMI.Value, "mm/dd/yyyy") & " 09:15:00#"

El código funciona bien, mi problema es que necesito que las horas también se recojan de las cajas de texto, he intentado varias opciones y no puedo hacerlo.

1 Respuesta

Respuesta
1

Has probado concatenando las horas a las fechas:

patosql = "SELECT Sum([Total])AS SumaTotal FROM CORTE_COMPRAS WHERE
Fecha BETWEEN #" & Format(txtFECHA_INIC.Value & " " &
txtHoraIni.text , "mm/dd/yyyy hh:mi:00") & "# AND #" & Format(txtFECHA_TERMI.Value  &
" " & txtHoraTerm.text, "mm/dd/yyyy hh:mi:00") & "#"

No olvides separar fechas de horas con un espacio.

Aunque te aconsejo que utilices las funciones de transformación de fechas para evitar problemas ( to_date en oracle, datetime en sql-server,...)

Hola Isabel, primero que nada muchísimas gracias por tu pronta respuesta, desafortunadamente me marca un error donde dice que no se puede hacer referencia a un objeto si no se tiene el enfoque, te comento que modifique la instrucción y ya la acepta, sin embargo no filtra correctamente, pienso que es algo referente con el formato de la hora, a ve si pudieras darme algún tip, muchas gracias.

patosql = "SELECT Sum([Total])AS SumaTotal FROM CORTE_COMPRAS WHERE Fecha BETWEEN #" & Format(txtFECHA_INIC.Value, "mm/dd/yyyy") & " " & Format(txtHoraIni.Value, "hh:mm:ss") & "# AND #" & Format(txtFECHA_TERMI.Value, "mm/dd/yyyy") & " " & Format(txtHoraTerm.Value, "hh:mm:ss") & "#"

Seguramente no te filtra correctamente la sentencia no esta cogiendo correctamente cada fecha con su hora correspondiente al estarlas formateando por separado.

Otra cosa que se me ocurre es que el manejador de Access se lía con las fechas, ya que a
veces mezcla el formato de fecha anglosajona (mm/dd/aaaa) con la
española (dd/mm/aaaa)
Por eso prueba a trabajar con las fechas en formato aaaa/mm/dd para evitar confusiones

Tenias toda la razón quedó de la siguiente forma por si a alguien mas le sirve:

patosql = "SELECT Sum([Total])AS SumaTotal FROM CORTE_COMPRAS WHERE ((Fecha)+(Hora)) BETWEEN #" & Format(txtFECHA_INIC.Value, "mm/dd/yyyy") & " " & Format(txtHoraIni.Value, "hh:mm:ss am/pm") & "# AND #" & Format(txtFECHA_TERMI.Value, "mm/dd/yyyy") & " " & Format(txtHoraTerm.Value, "hh:mm:ss am/pm") & "#"

Muchas gracias por su apoyo y en verdad es una excelente página, los felicito.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas