Format de date - BETWEEN [Résolu]

Signaler
Messages postés
14
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
13 mars 2009
-
Messages postés
3
Date d'inscription
dimanche 16 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2013
-
Bonjour,

Je travail avec une base de donnée Access et utilise une requête between qui ne me retourne pas toujours les valeurs exactes, surement du à un mauvais format de date, au niveau des mois plus particulièrement, voici ma requête :

SELECT NomPeriode
FROM Dates
WHERE Datevalue('" + cl2.recupdates + '") BETWEEN DateD and DateF

Avec pour format de date :  'dd/mm/yyyy'

Les valeurs retournées pour le 1er moi sont correctes seulement cette requête me retourne les même valeurs pour les prochains moi en décalant de 1 ou 2 journée les plages de dates alors qu'elle devrait me retourné une requête vide.

Si quelqu'un a une idée sur le bon format de date à utiliser ou autre conseil,

Merci d'avance

3 réponses

Messages postés
14
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
13 mars 2009
2
Oups je m'en excuse mais le format n'est pas "MM/dd/yyyy" mais "dd/MM/yyyy", cette erreur est du à un mauvais type de champs dans la base de donnée (types date en texte). Et bien sur ne pas négliger les majuscules MM pour convertir par exemple.
Messages postés
14
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
13 mars 2009
2
C'est bon ! Pour ceux qui aurait le même problême la fonction BETWEEN marche sous access avec le format "MM/dd/yyyy".
Messages postés
3
Date d'inscription
dimanche 16 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2013

Merci bcp aGeS67, votre réponse m'a résolu un problème que j'ai passé 10 jours à recherche la solution.
Je confirme bien, Access prend en charge les dates sous la forme dd/MM/yyyy, cependant VB6 les prend sous la forme MM/dd/yyyy.
Pour remedier à ce problème, il suffit de convertir les dates extraites de la base de données Acces comme suit :
"select * from table WHERE champ_date BETWEEN #" & Format(date1,"MM/dd/yyyy") & "# AND #" & Format(date2,"MM/dd/yyyy") & "#",cn,1,2


Merci infiniment