Filtrer les enregistrements entre deux dates [Résolu]

Signaler
Messages postés
5
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
1 juin 2006
-
Messages postés
5
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
1 juin 2006
-
Bonjour,

J'essaye dans un formulaire de sortir les enregistrements qui sont entre deux dates entrées dans des textbox.  (rcomplaintdate1 et rcomplaintdate2) le champ qui contient la date dans la table est "complaintdate"

lorsque je teste, access plante sur les lignes rouges. il marque Type mismatch. Je comprend pas ou est l'erreur.

Quelqu'un aurait une idée ?

Merci pour votre aide

private sub filtre_click()
f = ""
If Not IsNull(Me.rcomplaintdate1) And Me.rcomplaintdate1 <> "" And Not IsNull(Me.rcomplaintdate2) And Me.rcomplaintdate2 <> "" Then
If f <> "" Then
f = f & " AND clng([complaintdate]) BETWEEN " & CLng(Me.rcomplaintdate1) & " And " & CLng(Me.rcomplaintdate2) & """"
Else
f = "Clng([complaintdate]) BETWEEN " & CLng(Me.rcomplaintdate1) & " AND " & CLng(Me.rcomplaintdate2) & ""
End If
End If

Me.Filter = f
Me.FilterOn = True

end sub

3 réponses

Messages postés
5
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
1 juin 2006

J'ai réussi en faisant comme ca, et tu avais raison, il faut utiliser les #
Merci et A+
Chat

If Not IsNull(Me.rcomplaintdate2) And Me.rcomplaintdate2 <> "" Then
    Dim vDebut, vFin As String
    vDebut = "#" & Month(rcomplaintdate1) & "/" & Day(rcomplaintdate1) & "/" & Year(rcomplaintdate1) & "#"
    vFin = "#" & Month(rcomplaintdate2) & "/" & Day(rcomplaintdate2) & "/" & Year(rcomplaintdate2) & "#"
    If f <> "" Then
        f = f & " AND complaintdate between " & vDebut & " and " & vFin & ""
    Else
        f = "complaintdate between " & vDebut & " and " & vFin & ""
    End If
End If
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut
Je connais pas trand chose à VBA, mais les dates ne sont pas des Long, mais des types Date.
Donc, n'utilise pas de conversion CLong
Je suppose que c'est de l'Acess :
Les formats de type Date (dans le type de champ de DB) doivent être encadrés par des #
Exemple :
" AND [complaintdate] BETWEEN #" & Me.rcomplaintdate1 & "# And #" & Me.rcomplaintdate2 & "#"
+ A quoi sert le quadruple " à la fin de ta 1ere ligne rouge ? --> à insérer un simple " dans ta chaine
Mais pourquoi ? aucun début de chaine n'a été inséré avant ! Là, c'est sûr, la syntaxe n'est pas redondante, donc ne marchera pas.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
2
salut, visiblement tu cherche la syntaxe de la requète sql

Alors crée la requète en mode assistant, ensuite passe en mode création et regarde le code sql de la requête. tu n'aura plus qu'a changer les dates par les valeurs de tes contrôles.

+++++

[mailto:K@lobit K@lobit] < Ne pas clicker ici
Mon Site < Mais ici