[Access - VBA] Recherche entre deux dates
Résolu
DecK
-
DecK -
DecK -
Bonjour,
Je développe actuellement une petite base de données sous Access.
J'ai créé une table sous SQL server dans laquelle j'ai un champ DateIntervention.
Lorsque je créé sous access une table lié sur cette table, il me récupère la date en format YYYY-MM-DD.
De ce fait, pour afficher la date dans le format souhaité, j'utilise une requête, dans laquelle je précise en SQL : Format([ma_table_liée].[DateIntervention];'jj/mm/aaaa'). Le champ s'appel Expr1.
Jusque là tout va bien (normalement !).
Ensuite j'ai créé un formulaire de recherche, dans lequel je recherche entre deux dates (TxT_DateDebut et TxT_DateFin).
Voilà donc la syntaxe de ma "formule" (trouvée sur le net d'ailleurs) :
Private Sub Btn_Filtre_Click()
f = ""
If Not IsNull(Me.TxT_DateDebut) And Me.TxT_DateDebut <> "" Then
f = "CLng([Expr1]) BETWEEN " & CLng(Me.TxT_DateDebut) & " AND " & CLng(Me.TxT_DateFin) & ""
End If
Me.Filter = f
Me.FilterOn = True
End Sub
Mon souci est lorsque je clic sur le bouton lié à ce code il m'affiche le code erreur "3464 : type de données incompatible dans l'expression du critère"...
Merci par avance pour votre aide !
Je développe actuellement une petite base de données sous Access.
J'ai créé une table sous SQL server dans laquelle j'ai un champ DateIntervention.
Lorsque je créé sous access une table lié sur cette table, il me récupère la date en format YYYY-MM-DD.
De ce fait, pour afficher la date dans le format souhaité, j'utilise une requête, dans laquelle je précise en SQL : Format([ma_table_liée].[DateIntervention];'jj/mm/aaaa'). Le champ s'appel Expr1.
Jusque là tout va bien (normalement !).
Ensuite j'ai créé un formulaire de recherche, dans lequel je recherche entre deux dates (TxT_DateDebut et TxT_DateFin).
Voilà donc la syntaxe de ma "formule" (trouvée sur le net d'ailleurs) :
Private Sub Btn_Filtre_Click()
f = ""
If Not IsNull(Me.TxT_DateDebut) And Me.TxT_DateDebut <> "" Then
f = "CLng([Expr1]) BETWEEN " & CLng(Me.TxT_DateDebut) & " AND " & CLng(Me.TxT_DateFin) & ""
End If
Me.Filter = f
Me.FilterOn = True
End Sub
Mon souci est lorsque je clic sur le bouton lié à ce code il m'affiche le code erreur "3464 : type de données incompatible dans l'expression du critère"...
Merci par avance pour votre aide !
A voir également:
- Access requête date comprise entre
- Nombre de jours entre deux dates excel - Guide
- Mfg date - Forum PC portable
- Acer quick access - Forum Logiciels
- Publipostage date inversée ✓ - Forum Word
- Access runtime ✓ - Forum Access
3 réponses
Pour information, j'ai trouvé ! Après plusieurs jours de recherche.....
Cdate([Expr1]) BETWEEN #" & CDate(Me.TxT_DateDebut) & "# AND #" & CDate(Me.TxT_DateFin) & "#"
Visiblement il ne considère pas mes dates comme des dates.... Maintenant ca fonctionne !
Merci à vous pour vos idées.
Cdate([Expr1]) BETWEEN #" & CDate(Me.TxT_DateDebut) & "# AND #" & CDate(Me.TxT_DateFin) & "#"
Visiblement il ne considère pas mes dates comme des dates.... Maintenant ca fonctionne !
Merci à vous pour vos idées.
Bonjour,
Comme c'est du texte attendu tu as essayé de lui passer la date en tant que telle ?
"17/03/2012" ou "2012/03/17"
Et pour convertir une date, datevalue(ta date en texte) marche bien aussi.
Sinon sur vba excel, dans certains cas, pour représenter une date on l'encadre de #, c'est peut-être ce qu'il attend aussi : #17/03/2012#
eric
eric
Comme c'est du texte attendu tu as essayé de lui passer la date en tant que telle ?
"17/03/2012" ou "2012/03/17"
Et pour convertir une date, datevalue(ta date en texte) marche bien aussi.
Sinon sur vba excel, dans certains cas, pour représenter une date on l'encadre de #, c'est peut-être ce qu'il attend aussi : #17/03/2012#
eric
eric
Bonjour, merci pour ta réponse.
Néanmoins une nouvelle erreur : 3075 : Erreur de syntaxe dans la date dans l'expression "CLng([Expr1]) BETWEEN #40544# AND #40908"
Ce qui est bizarre c'est que dans le message d'erreur, il manque le dernier dièse, alors que quand (en mode débuggage) je survole ma variable "f" il me met bien la formule : f="CLng([Expr1]) BETWEEN #40544# AND #40908#"
Néanmoins une nouvelle erreur : 3075 : Erreur de syntaxe dans la date dans l'expression "CLng([Expr1]) BETWEEN #40544# AND #40908"
Ce qui est bizarre c'est que dans le message d'erreur, il manque le dernier dièse, alors que quand (en mode débuggage) je survole ma variable "f" il me met bien la formule : f="CLng([Expr1]) BETWEEN #40544# AND #40908#"