Access: afficher une date par année en SQL

Résolu/Fermé
printfx000 - 5 sept. 2013 à 09:33
 printfx000 - 9 sept. 2013 à 15:50
Bonjour,

j'ai une table Access dans laquelle j'ai un champ MaDate ou les données sont de la forme "JJ/MM/AAAA".

Lorsque je fais une requete "SELECT MaDate FROM MaTable ORDER BY MaDate", on m'affiche les dates mais dans l'ordre des jours (exemple: 01/10/2012 sera placé avant 30/05/2010) !

Connaissez vous un moyen d'afficher les dates dans le bonne ordre mais sans changer le format de la date, svp ?

Merci !

3 réponses

Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
5 sept. 2013 à 11:37
Très bizarre. Ton champ date est bien défini en type "Date/Heure" ?
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
5 sept. 2013 à 13:44
Bonjour
Pour extraire l'année d'une date, dansune requete ,dans une nouvelle colonne,par exemple tu inscris
come critere
DateAn: Format([MaDate];"aaaa") en français ou yyyy
0
Merci pour vos réponses ! J'ai regardé le type de mon champ MaDate (format JJ/MM/AAAA) et effectivement, il était de type Texte. Je le mets donc en type Date/Heure.
Cependant, après lancement du formulaire contenant la liste déroulante où est censé apparaitre le résultat de ma requete, j'ai le message d'erreur suivant:

Cette expression présente une syntaxe incorrecte, ou est trop complexe pour être évaluée. Par exemple, une expression numérique peut contenir des éléments trop compliqués. Essayez de la simplifier en en affectant des parties à des variables.

Sauriez vous m'aider, svp ? Merci !
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
5 sept. 2013 à 14:56
J'en étais sur ^^ C'est pour ça que ta chaine de caractères est évaluée comme un mot et non comme une valeur.

Quand tu changes la nature d'un champ, les requêtes basées dessus doivent parfois être adaptées car la requête SQL que tu avais porte toujours sur un champ texte alors qu'il est devenu un champ date.

Donc tu ouvres ta requête en mode édition et tu refais le filtre qui portait sur ce champ.
0
merci de ta réponse, mais qu'est ce que tu entends par "refais le filtre qui portait sur ce champ" ?
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
5 sept. 2013 à 15:22
Tu as bien créé une requête ? Tu la rouvres, tu supprimes les champ "date" et tu le remets.
0
en fait, ma requete je la fais directement dans ma liste de formulaire ! je n'ai pas de requete proprement créées (comme celles qui apparaissent à gauche de ta page Access). Donc comment je fais ?
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
5 sept. 2013 à 15:55
Ca change rien: c'est la même méthode ^^

Elle dit quoi ta requete ? Tu as le SQL dispo ?
0
Voici le SQL de la requete : SELECT DISTINCT DateReunion FROM Reunion;

Sinon, j'ai remarqué un truc intéréssant: c'est que après avoir modifié le type de mon champ DateReunion en date/heure et en supprimant la liste de formulaire contenant la requete ci-dessus, j'ai toujours mon message d'erreur qui s'affiche. Pour plus qu'il s'affiche, je dois également supprimer mes autres listes qui affichent d'autres champs de ma table Reunion.
0
J'ai résolu mon problème d'une manière assez radicale ! J'ai créée une nouvelle colonne dans ma table comprenant mes dates en format Date et heure. J'ai ensuite adapté mes requêtes et ça marche sans problème maintenant.

Merci quand même pour votre aide ^^ !
0