cs_Herminator
Messages postés34Date d'inscriptionjeudi 4 novembre 2004StatutMembreDernière intervention11 février 2008
-
1 avril 2005 à 12:11
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
2 avril 2005 à 11:11
Bonjour à tous,
J'ai fais une connection en ADO sur un fichier .mdb (access97).
J'ai un problème pour extraire la date la plus récente dans une table.
Le champ date à été enregistrer en format texte sous la forme "mm/jj/aa hh:mm:ss".
Lorsque je fais " Max(date)" : il mélange les jours et les mois.
Lorsque je fais "Max(CDate(date))" : il me renvoi "14/02/2037" ???
Je pense qu'il s'agit d'un problème de format de date. Mais comment reformater le texte en format "jj/mm/aaaa" ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 1 avril 2005 à 14:24
Salut
Essaye avec DateValue(taDate) ou Format(taDate, "dd/mm/yyyy")
Fais attention avec les champs qui utilisent des mots clés de langage : 'date' n'est pas recommandé
Vala
Jack
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_Herminator
Messages postés34Date d'inscriptionjeudi 4 novembre 2004StatutMembreDernière intervention11 février 2008 1 avril 2005 à 15:27
J'ai réussi à trouver une parade pour ressortir la valeur max en
mettant la date dans l'ordre "yymmdd", car j'ai l'impression que le
système considère la date comme un nombre au lieu de l'interprêter en
date (??? bizarre).
J'ai essayé tes 2 fonction de 'DateValue' et 'Format', le format
dd/mm/yy est correct, mais le résultat de la valeur max est faux.
Voici donc la commande que j'utilise, (le format de date du départ
étant de la forme " mm/jj/aa hh:mm:ss") pour convertir au format
"aammjj"
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 2 avril 2005 à 11:11
Salut, si je comprend bien, tes dates ne sont pas stockées dans un champ de type date mais de type string ?
Dans ce cas, max() compare du texte et trouvera que "04/02/04....." est supérieur à "04/01/05.....".
Donc ta solution est bonne, quoique plutôt que d'utiliser des right(left()), utilise mid$(), le temps d'exécution sera un plus court :