Date, Bd Access URGENT !!! merci

Résolu
Signaler
Messages postés
118
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
28 mars 2008
-
Messages postés
202
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
22 janvier 2009
-
Bonjour à tous,

J'utilise une bd access avec un champs de type Date, abrégé

Voici ma requeste :

Select strDate from Ma_Table where format([strdate],'dd-mm-yyyy') > #01/01/2005#"

Il me sort les enregistrements que les dates sont plus grande que 01/01/2005 mais également les enregistrements dont la date est 01/01/2005

MEme si j'utilise ceci :

Select strDate from Ma_Table where format([strdate],'dd-mm-yyyy') > #01/01/2005#" and
format([strdate],'dd-mm-yyyy') <> #01/01/2005#"

j'ai les memes résultats

Pk ? merci

Nightcourrier

5 réponses

Messages postés
147
Date d'inscription
lundi 13 mai 2002
Statut
Membre
Dernière intervention
15 février 2010

2ème solution :
Select strDate from Ma_Table where format([strdate],'yyyymmdd') > '20050101'

Tu formates ta date de la table en string et tu la compares avec une autre string car effectivement tu risque d'avoir des problème avec les formats de dates stockées , dans la mesure ou ACCESS ne visualise pas les heures mais qu'elles sont malgrès tout présentes dans la table.

Il ne faut pas oublier que le champs Date est affiché en temps que jj-mm-aaaa par exemple mais que physiquement c'est un n° de série qui est stocké et que par défaut ce nombre prend une heure à 00:00 si on ne lui spécifie rien et une heure à l'heure courante si on lui spécifie Date().

Si l'on ne posséde qu'une partie de la date/heure , la solution la moins "hasardeuse" est de formatter cette date en un format qui correspond avec les données qu'on posséde , ici en l'occurence aaaammjj ( et dans ce format précis car on récupére du string ! )

En espérant avoir répondu à tes attentes ...


<HR>
Life is too short !
Enjoy your life ...
NotSoBad en : VB / ASP / SQL / VBS / VBA / JSP / JavaScript / Java
Débutant : XML / Delphi
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
202
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
22 janvier 2009
1
Salut,

Je crois que ton problème vient du fait que les champs Date d'une BD
enregistre aussi l'heure, surtout quand la données enregistrée est
faite par la fonction "Date()".

Dans tous les cas, meme si le problème ne vient pas de là, tu peux tout
simplement ajouter un jour à la date de test et mettre un ">= "

C'est a dire que si tu veux tous les enregistrements à une date
supérieur au 01/01/2005 (pour reprendre ton exemple), tu mets dans ta
requete le 02/01/2005 ! C'est con, mais ca marche !

En espérant t'avoir aidé...

@+
Messages postés
107
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
20 février 2008

Je crois plutot que lorsque tu met format ca te transforme ta date en String.

Je te donne la requete que tu dois utiliser :

Select strDate from Ma_Table where strdate > #01/01/2005#

Sachant que sous Access la date est sous la forme: mm/jj/aaaa

Ici ta requete selectionne les date supérieur au 01 Janvier 2005. Avec ton exemple on s'est dificile de comprendre ce que je dis.
Alors je redonne un autre exemple : Select strDate from Ma_Table where strdate > #05/01/2005#

Cela selectionne les date sup au 01 Mai 2005.

Voila j'espere que j'aurai pu d'aider et n'hesite pas. Nous sommes là pour ca.

@+

Manu
Messages postés
118
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
28 mars 2008

Bonjour à vous,
merci beaucoup vos suggestions ont réglé mon problème :)

Nightcourrier
Messages postés
202
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
22 janvier 2009
1
Tu as eu trois réponses différentes, alors je pense que ce serait util a tous que tu dises laquelle marche.