{Access} Faire une requête par tranche d'âge

Fermé
Nadaza - 18 déc. 2009 à 12:21
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 - 29 déc. 2009 à 17:06
Bonjour,
Je suis bénévole dans une association qui inscrit ses adhérents dans une base de donnée ACCESS (version inconnue donc je suppose 97... et oui !)
J'aimerais trier dans une requête les adhérents par tranche d'âge, avec un liste déroulante qui propose les adhérents de 20 à 24 ans, de 25 ans à 34 ans, etc...

J'ai déjà la solution de demander à l'utilisateur de rentrer les dates "Entre" lesquelles il veut la tranche d'âge. Mais j'aimerais que ça se fasse directement en proposant une liste déroulante "liste des adhérents de 20 à 24 ans", "liste des adhérents de 25 à 34 ans",... Que le calcule s'opère d'après la date du jour de la requête...
Et là, mon niveau de compétence est largements dépassé !!!
Pouvez-vous m'aider ???
Merci de préciser votre réponse avec requête, macros, formules... je m'y perds un peu dans tout ça. Faut-il utiliser "PARTDATE", "DIFFDATE", comment, ou ????

Je vous remercie d'avance... et bonnes fêtes à tous.
Nad

1 réponse

nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 32
18 déc. 2009 à 15:01
Bonjour,

je vais te donner un exemple, peut être que ça résolura ton problème.

J'ai une table (Table1) avec :
id => autonum
nom => texte
age => date/heure (Format date abrégé)

Je fais une requete (Req1) :
SELECT Table1.nom, DateDiff("yyyy",Table1.age,Date()) AS lol
FROM Table1;

Dans mon formulaire je vais cherché ma Req1 et il me reste plus qu'a faire les criteres de recherches

exemple :

De 24 ans à 34 ans
SELECT Req1.nom, Req1.lol FROM Req1 WHERE (((Req1.lol) Between 24 And 34));

De 25 à 45 ans
SELECT Req1.nom, Req1.lol FROM Req1 WHERE (((Req1.lol) Between 35 And 45));

Etc ...

Après a toi de mettre ca sur un formulaire avec un sous formulaire ou avec directement une listbox.

Cordialement.
-1
Bonjour,

Merci de ta réponse mais elle est un peu trop rapide pour moi.
Quand tu écris :
Je fais une requete (Req1) :
SELECT Table1.nom, DateDiff("yyyy",Table1.age,Date()) AS lol
FROM Table1;

Je ne sais pas où inscrire cette phrase.
J'ai créé une requête qui sélectionne tous les adhérents.
J'ai créé une listebox dans le formulaire des listes d'adhérents avec l'ensemble des listes possibles (- de 20 ans, 20 à 24,...)... mais il me manque l'essentiel et je me perds dans tes explications.

Merci encore des précisions que tu pourras m'apporter... et passe de bonnes fêtes de fin d'année !
0
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 32 > NADAZA
29 déc. 2009 à 17:06
SELECT Table1.nom, DateDiff("yyyy",Table1.age,Date()) AS lol
FROM Table1;


- Tu créé une requete en mode création.
- Tu fermes la fenêtre qui te propose d'afficher des tables.
- Tu fais un clique droit sur la fenêtre (ou normalement y a les tables) et tu te mets en mode SQL

La j'ai fini le taff, mais je t'expliquerai comment faire pour ta listbox :)

Bonne soirée et bonne fêtes a toi aussi :)
0