Búsqueda entre dos fechas en Access - VBA

Resuelto
DecK -  
 DecK -
Hola,

Estoy desarrollando actualmente una pequeña base de datos en Access.
He creado una tabla en SQL Server en la que tengo un campo FechaIntervención.

Cuando creo en Access una tabla vinculada a esta tabla, me recupera la fecha en el formato AAAA-MM-DD.

Por lo tanto, para mostrar la fecha en el formato deseado, utilizo una consulta en la que especifico en SQL: Formato([mi_tabla_vinculada].[FechaIntervención];'dd/mm/aaaa'). El campo se llama Expr1.

Hasta aquí todo bien (¡normalmente!).

Después he creado un formulario de búsqueda, en el que busco entre dos fechas (TxT_FechaInicio y TxT_FechaFin). Aquí está la sintaxis de mi "fórmula" (encontrada en internet, por cierto):

Private Sub Btn_Filtrar_Click()

f = ""

If Not IsNull(Me.TxT_FechaInicio) And Me.TxT_FechaInicio <> "" Then

f = "CLng([Expr1]) BETWEEN " & CLng(Me.TxT_FechaInicio) & " AND " & CLng(Me.TxT_FechaFin) & ""

End If

Me.Filtro = f
Me.FiltroActivado = True
End Sub

Mi problema es que cuando hago clic en el botón relacionado con este código, me muestra el código de error "3464: tipo de datos incompatible en la expresión del criterio"...

¡Gracias por adelantado por su ayuda!

Configuración: Windows 7 / Safari 535.19

3 respuestas

DecK
 
¡Para información, he encontrado! Después de varios días de búsqueda.....

Cdate([Expr1]) BETWEEN #" & CDate(Me.TxT_DateDebut) & "# AND #" & CDate(Me.TxT_DateFin) & "#"

Aparentemente, no considera mis fechas como fechas.... ¡Ahora funciona!

Gracias a ustedes por sus ideas.
2
eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
 
Hola,

Como es un texto esperado, ¿has intentado pasarle la fecha tal cual?
"17/03/2012" o "2012/03/17"
Y para convertir una fecha, datevalue(tu fecha en texto) también funciona bien.

Si no, en VBA de Excel, en algunos casos, para representar una fecha se encierra entre #, tal vez eso es lo que espera también: #17/03/2012#

eric

eric
0
DecK
 
Hola, gracias por tu respuesta.
Sin embargo, hay un nuevo error: 3075: Error de sintaxis en la fecha en la expresión "CLng([Expr1]) BETWEEN #40544# AND #40908"

Lo que es extraño es que en el mensaje de error falta el último signo de número, mientras que cuando (en modo de depuración) paso el cursor sobre mi variable "f" me muestra correctamente la fórmula: f="CLng([Expr1]) BETWEEN #40544# AND #40908#"
0
eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
 
Número de fecha: #jj/mm/aaaa# o #aaaa/mm/jj# dejando de lado el cnum()
eric
0
DecK
 
Más errores, pero no filtra nada en absoluto :(
0
eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
 
Creo que has intentado #jj/mm/aaaa# y #aaaa/mm/jj#, no puedo ayudarte más, lo siento
Eric
0
DecK
 
¡De nada, gracias a ti por tu ayuda!
0
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
Hola

Un ejemplo de consulta entre 2 fechas a partir de un formulario (F_relance) que funciona:

Entre [forms]![F_relance]![txt_datedeb] Y [forms]![F_relance]![txt_datefin]
--
Michel
0
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
adjunto
captura de pantalla de la solicitud
https://www.cjoint.com/?3EjknIoBqoE
0
DecK
 
Hola Michel-m
Gracias por su respuesta.
El problema es que ya tengo un formulario con campos que llenar, había pensado en hacer algo así, pero no está en mi pliego de condiciones :)
Sin embargo, gracias.
0