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,
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.
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