Consultas sql con fechas

Valen
12 de Septiembre del 2003
Hola muy buenas!
Resulta que me paso algo que no termino de comprender ni explicarme. En mi programa tengo la posibilidad de realizar diferentes consultas para la busqueda de registros. Bueno pues una de mis consultas es introduciendo la fecha y el programa te saca aquellos registros que hayan sido dado de alta en la fecha que introducimos. Mi problema esque depende del dia que le introduzca me devuelve registros o no. Me explico mejor yo por ejemplo tengo un registro dado de alta el 05/09/2003 y luego le doy a consultar por esa fecha y me dice que no hay ningun registro. En cambio para el dia 10/09/2003 si que me saca registros. Es decir que la consulta va cuando quiere y mas bien dependiendo del dia. Os muestro mi codigo por si veis algun error, porque no termino de explicarme esto de que vaya para unas fechas y otras no.

Dim Mensaje, Título, a
Dim strquery As String
Dim tRs As Recordset
Dim b As Date
On Error GoTo checkerror
Adodc2.Refresh

Mensaje = " Introduzca la fecha(dd/mm/aaaa) de alta de la Incidencia que desea consultar"
Título = "Consulta Incidencias"
a = InputBox(Mensaje, Título)
b = Format(a, "dd/mm/yyyy")

strquery = "SELECT * FROM incidencias where fechaalta= #" & b & "#"
Set tRs = mibase.Execute(strquery)
With tRs
If (.BOF And .EOF) Then
MsgBox "No hay ninguna incidencia para esta fecha.", vbExclamation, "Consulta Incidencias"

Else

alta.Hide
coninc.Show


coninc.Adodc1.RecordSource = strquery
coninc.Adodc1.Refresh


End If
End With
checkerror:
If (Err.Number = 13) Then
MsgBox "Ha introducido un formato de fecha incorrecto, introduzcala correctamente (dd/mm/aaaa)", vbExclamation, "Consulta Incidencias"
End If


Gracias.

goio
12 de Septiembre del 2003
Aunque tengas la fecha en formado dd/mm/yyyy en la base de datos, en el sql tienes que ponerla como mm/dd/yyyy:


b = Format(a, "mm/dd/yyyy")
strquery = "SELECT * FROM incidencias where fechaalta= #" & b & "#"

Al menos a mi esto me funciona.


rafa
12 de Septiembre del 2003
Prueba a poner ' en vez de #
Para ado funciona con ' para dao con #
espero que sea tan sencillo.
Suerte