Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/09/2011, 18h58   #1
Futur Membre du Club
 
Inscription : juin 2005
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 28
Points : 17
Points : 17
Par défaut Filtre sur Dates dans VBA

Bonjour à tous,

Le sujet a été traité 100 000 fois, et bien que j'aie parcouru le site en long en large et en travers, je n'arrive pas à résoudre le problème sur une requête en VBA.

Code :
1
2
Dim DateDeDébut As Date
Dim DateDeFin As Date
Code :
    Set RequêteMembresEntrés = MaBd.OpenRecordset("SELECT Count(td_ADHER.el_NumPasseport) AS CompteDeel_NumPasseport, td_ATELI.en_CodeRegion, td_ADHER.tf_CodeAutorisation FROM td_ADHER INNER JOIN td_ATELI ON td_ADHER.en_CodeAtelier = td_ATELI.en_CodeAtelier WHERE (((td_ADHER.da_DateTransfert) Between #" & DateDeDébut & "# And #" & DateDeFin & "#)) GROUP BY td_ATELI.en_CodeRegion, td_ADHER.tf_CodeAutorisation, td_ATELI.bo_Actif HAVING (((td_ADHER.tf_CodeAutorisation) = 'I' Or (td_ADHER.tf_CodeAutorisation) = 'A' Or (td_ADHER.tf_CodeAutorisation) = 'E' Or (td_ADHER.tf_CodeAutorisation) = 'R') And ((td_ATELI.bo_Actif) = Yes)) ORDER BY td_ATELI.en_CodeRegion, td_ADHER.tf_CodeAutorisation;")
A chaque fois, j'ai le message d'erreur suivant :
"Erreur de syntaxe dans la date dans l'expression "(((td_ADHER.da_DateTransfert) Between #01.03.2011" And "31.03.2011")"

Je précise que les variables DateDeDébut et DateDeFin sont saisies dans un formulaire à partit duquel je lance la requête. Elle sont déclarées en format Date,Abrégée ...

Sur mon ordinateur, toutes les dates s'affichent en jj.mm.aaaa. Il en est de même dans les tables.
J'ai essayé en convertissant au format mm.dd.aaaa, mais j'ai toujours le même message ...

Quelqu'un aurait-il une petite idée?

Grand merci de votre aide!
Corinne4775 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 19h10   #2
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
bonjour,

il faut pourtant mettre les dates au format US dans les requêtes:

FAQ: Comment formater les dates (en version US) pour les inclures dans une requête

soit,
Code :
(td_ADHER.da_DateTransfert) Between #" &  Format$(DateDeDébut, "mm/dd/yyyy") & "# And #"...
en passant,

Code :
 ...(td_ADHER.tf_CodeAutorisation) = 'I' Or (td_ADHER.tf_CodeAutorisation) = 'A' Or (td_ADHER.tf_CodeAutorisation) = 'E' Or (td_ADHER.tf_CodeAutorisation) = 'R') ...
peut s'écrire plus simplement:
Code :
...td_ADHER.tf_CodeAutorisation IN ('I', 'A', 'E', 'R')...
un truc bizarre aussi:
Code :
...HAVING (((td_ADHER.tf_CodeAutorisation) = 'I' Or...
tout le critère devrait plutôt figurer dans le WHERE.
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 06/09/2011, 19h32   #3
Futur Membre du Club
 
Inscription : juin 2005
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 28
Points : 17
Points : 17
Merci à toi f-leb,

Je prends bonne note du "au passage ...". Mais j'ai toujours le même message après avoir modifié comme indiqué.

C'est à n'y rien comprendre.

J'avais déjà essayé tout ça sans le $ après Format : j'ai cru que cela pouvait être ça. Mais non ...

Une autre idée ?
Corinne4775 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 20h16   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Peut-être avec
Code :
Format(DateDeDébut, "mm\/dd\/yyyy")
pour éviter les points dans la date.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 07/09/2011, 10h16   #5
Futur Membre du Club
 
Inscription : juin 2005
Messages : 28
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 28
Points : 17
Points : 17
Bravo!!!!

Grand merci LedZep ... ce n'était que ce "petit" problème de points qui gênait.

Je pense que cette info en aidera plus d'un.

Corinne4775 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h07.


 
 
 
 
Partenaires

Hébergement Web