consultas SQL con fechas en VB
Cordial Saludo
Tengo una consulta SQL que tiene la siguiente forma:
cons="select * from Tabla where fecha="&Format(fecha,"ddmmyyyy")&""
cuando ejecuto esta consulta, la base de datos me retorna un recordset vacio, apesar de que
existen registros que cumplen dicha condicion.
como debo hacer la anterior consulta para que funcione correctamente?
Muchas Gracias
Tengo una consulta SQL que tiene la siguiente forma:
cons="select * from Tabla where fecha="&Format(fecha,"ddmmyyyy")&""
cuando ejecuto esta consulta, la base de datos me retorna un recordset vacio, apesar de que
existen registros que cumplen dicha condicion.
como debo hacer la anterior consulta para que funcione correctamente?
Muchas Gracias
copia lasiguiente consulta
cons="select * from Tabla where fecha='"&Format(fecha,"ddmmyyyy")&"'"
luego coloca esta variable en el recordsource del data o de cualquier coneccion a la DB
cons="select * from Tabla where fecha='"&Format(fecha,"ddmmyyyy")&"'"
luego coloca esta variable en el recordsource del data o de cualquier coneccion a la DB
Independientemente del uso de comillas simples o almohadillas, debes también considerar si el campo de tipo fecha al que comparas es de fecha y hora. Si es así, es posible que el resultado sea un recordset vacío debido a que se está comparando con la fecha indicada a las 00:00 de la medianoche por defecto, y no haya tal caso. Una solución sería no comparar con una igualdad, si no establecer un rango del día entero, por ejemplo desde las 00:00 hasta las 23:59. Suerte.
debes de poner las comillas antes y despues de la fecha como con un string
Saludos Diego, si mal no recuerdo tu problema estriba en que las fechas en una consulta SQL debes pasarlas entre almohadillas (#), es decir, tu consulta debería ser más o menos así:
cons = "SELECT * FROM Tabla WHERE fecha = #" & Format(fecha,"ddmmyyyy") & "#"
y creo que así debe funcionar, sino nos avisas...
Adiós y Suerte...
cons = "SELECT * FROM Tabla WHERE fecha = #" & Format(fecha,"ddmmyyyy") & "#"
y creo que así debe funcionar, sino nos avisas...
Adiós y Suerte...
Yo creo que la sentencia format esta mal usada, la misma deberías usarla asi:
cons="SELECT * FROM tabla WHERE fecha = FORMAT(varfecha,"dd/mm/yyyy")".
Chau y suerte.-
cons="SELECT * FROM tabla WHERE fecha = FORMAT(varfecha,"dd/mm/yyyy")".
Chau y suerte.-
Diego:
Cierto que las fechas se colocan entre almohadillas. Sin embargo, le ofrezco una solución más versátil, ya que es independiente del formato de fecha que se use. La solución consiste en transformar la fecha en un número entero si no contiene información de hora, o un número doble si contiene hora.
Algo como esto:
cons="select * from Tabla where fecha=" & cstr(clng(fecha))
Eso si fecha es una variable tipo Date. Si no lo es, entonces esto:
cons="select * from Tabla where fecha=" & cstr(clng(cdate(fecha)))
Debe cambiar la función clng por la función cdbl si la parte de la hora debe ser utilizada.
Esto es más sencillo porque no tiene que usar almohadillas y no debe preocuparse por el formato de fecha a usar.
Cierto que las fechas se colocan entre almohadillas. Sin embargo, le ofrezco una solución más versátil, ya que es independiente del formato de fecha que se use. La solución consiste en transformar la fecha en un número entero si no contiene información de hora, o un número doble si contiene hora.
Algo como esto:
cons="select * from Tabla where fecha=" & cstr(clng(fecha))
Eso si fecha es una variable tipo Date. Si no lo es, entonces esto:
cons="select * from Tabla where fecha=" & cstr(clng(cdate(fecha)))
Debe cambiar la función clng por la función cdbl si la parte de la hora debe ser utilizada.
Esto es más sencillo porque no tiene que usar almohadillas y no debe preocuparse por el formato de fecha a usar.