Bueno, para no confundir a kdosh, intentaré ser lo más claro posible:
Tu consulta que funciona en acces es:
[I]SELECT RESERVAS.ID_RESERVA, RESERVAS.A_NOMBRE, RESERVAS.ID_MESA, RESERVAS.FECHA_r, RESERVAS.HORA_r, RESERVAS.CANTIDAD_DE_CUB, RESERVAS.CANCELADA, RESERVAS.OCUPADA
FROM RESERVAS
WHERE (((RESERVAS.ID_MESA)=2) AND ((RESERVAS.FECHA_r)=#1/16/2009#) AND ((RESERVAS.HORA_r) Between #12/30/1899 16:0:0# And #12/30/1899 19:0:0#) AND ((RESERVAS.CANCELADA)=False));[/I]
Si esa consulta la ejecutas desde vb y te funciona, simplemente tienes que generar la cadena de la consulta a tu gusto pasando los datos necesarios.
Yo cambiaría el formato del campo hora a 'Hora corta' para tener solo horas y munutos.
¿ Cómo lo haría yo ? (lo pongo en varias lineas para que lo puedas ver mas claro desde vb) (copia y pega)
ConsultaSQL = "SELECT RESERVAS.ID_RESERVA, RESERVAS.A_NOMBRE, RESERVAS.ID_MESA, RESERVAS.FECHA_r, RESERVAS.HORA_r, RESERVAS.CANTIDAD_DE_CUB, RESERVAS.CANCELADA, RESERVAS.OCUPADA From RESERVAS WHERE "
ConsultaSQL= ConsultaSQL & "(((RESERVAS.ID_MESA)=" & NumeroMesa
ConsultaSQL = ConsultaSQL & ") AND ((RESERVAS.FECHA_r)=#" & Format(FechaReserva, "dd/mm/yyyy") & "#) AND "
ConsultaSQL = ConsultaSQL & "((RESERVAS.HORA_r) Between # 12/30/1899 " & Format(HoraDesde, "hh:mm:0") & "# And #12/30/1899 " & Format(HoraHasta, "hh:mm:0") & "#) AND ((RESERVAS.CANCELADA)=False));"
Esta consulta es equivalente a la tuya, pero ahora le puedes pasar los valores correctos.
Espero que con esto esté todo claro, en especial para kadosh.
Un saludo.
__________________ MVISION MV 9085 NET-USB-TDT
|