![]()
Pour suivre cette leçon, vous devez avoir suivi les leçons précédentes. Ou plus précisément, vous devez être en possession de la base de données procd.mdb telle qu'elle était à la fin de la leçon précédente. Si vous n'êtes pas certain de l'avoir, vous pouvez la télécharger ici
| Lors de la dernière leçon, nous avons appréhendé le concept de Clé primaire (Identifiant. Nous avont vu son utilité (éviter les doublons principalement). Nous avons vu qu'il est possible de les placer, de les enlever, et même d'en mettre sur plusieurs champs à la fois. Nous avons vu également que le NuméroAuto est l'ami intime de la célé primaire, même s'ils ne sont pas obligatoirement associés. |
| Maintenant, nous allons voir comment faire pour créer nos propres listes déroulantes : Au lieu de taper directement les informations dans les champs, nous pouvons demander à ce qu'il faille sélectionner la valeur dans une liste déroulante. |
Pour commencer, dans votre table T_Client, vous allez créer un nouveau champ
qui s'appelle Titre :
. Ce sera un champ qui va accueillir le titre du client :
Madame, Mademoiselle ou Monsieur.
Lancez la table en mode saisie de données, et précisez les titres des
premiers clients :
. Vous constatez que comme nous n'avons pas défini vraiment de
règles, il y a de multiples façons d'écrire les titres... Vous vous doutez quand
même que lorsque plus tard, nous allens essayer d'extraire tous les "Monsieur",
ça ne va pas vraiment être possible : Il faudra se rappeler que certains sont
écris Monsieur, M, Ms, ou même Mr, ou carrément avec une faute
(Monssieur).
Oui, mais ce n'est pas très convivial... Justement, nous allons étudier une manière de faire vraiment plus sympa.
Retournez dans la table en mode création, et dans le champ titre, à la place de Texte, choisissez "Assistant liste de choix"
.
La boîte de dialogue suivante apparait :
Sélectionnez la
première option "Je taperai les valeurs souhaitées", et cliquez sur Suivant.
.
Vous arrivez maintenant ici :
cliquez dans la zone en
dessous de Col1
Ecrivez Madame, Mademoiselle, Monsieur, comme ceci :
et cliquez
sur Suivant
Vous êtes ici :
Cliquez sur Terminer
Voilà ! C'est terminé. Vous êtes revenu à la case départ !
Constatez que le champ Titre est revenu à texte
. C'est normal. Pour
voir le travail qui a été fait, Lancez la table en mode saisie de données, et
cliquez dans le champ titre de votre premier client :
. Vous constatez qu'une
petite flèche apparait : C'est votre liste déroulante. Si vous cliquez dessus,
vous allez constater qu'il va vous donner le choix entre Madame, Mademoiselle et
Monsieur :
. Ce n'est pas plus compliqué que ça !
A titre d'exercice, retournez dans la table en mode création, et refaites la manoeuvre : Vous n'avez pas besoin de recréer un champ titre, vous allez dans votre Titre existant, et comme type de données, vous REchoisissez Assistant liste de choix : Access va vous renvoyer dans l'assistant. Refaites exactement la même manoeuvre que nous venons de faire, histoire de vous familiariser avec cette technique.
C'est très simple, vous lancez la table en mode saisie de données, et plutôt
que de cliquer sur la petite flèche, vous écrivez Maître :
, et le tour est joué.
Attention par contre : Ce n'est pas parce que vous l'avez écrit une fois que ça
apparaît dans la liste ! C'est un titre exceptionnel : Vous pouvez l'écrire si
vous voulez, mais c'est tout :
.
Eh bien justement : Imaginez que vous avez des milliers de clients, et que seulement un ou deux sont des avocats : Vous aimeriez bien pouvoir écrire Maître pour ces 2 clients, mais vous n'avez toutefois pas envie que ce titre apparaisse dans la liste : Il est trop peu usité.
Vous avez toujours la possibilité de re commencer la liste déroulante avec l'assistant, comme tout à l'heure, et ajouter Monsieur, madame, Mademoiselle et ... Maître !
Si. On peut. Allez dans la table en mode création, cliquez sur le champ
Titre, puis, en bas sur l'onglet Liste de choix, puis juste à la fin de
"Madame";"Mademoiselle";"Monsieur"
. Ajoutez à la fin de cette ligne ;"Maître" pour que
ça donne ce résultat exactement : "Madame";"Mademoiselle";"Monsieur";"Maître" :
, et lancez la table en mode saisie de données.
Maintenant, vous pouvez constater que Maître est maintenant disponible dans la
liste déroulante :
.
Ah mais vous pouvez ! Au lieu de cliquer sur la flèche de la liste, vous
cliquez simplement dans le champ :
, écrivez m :
: Vous constatez
qu'Access complète automatiquement avec le premier nom qui commence par M qu'il
rencontre : Madame. Si vous vouliez écrire Mademoiselle, vous devriez écrire les
4 premières lettres : made :
.
Parce que Maître s'écrit avec un i avec accent circonflexe : î... ALors évidemment, si vous écrivez mai... ça ne va pas...
Oui, bien entendu.
Oui, mais si vous la verrouillez, plus question de mettre des titres exceptionnels comme "Sa Majesté", ou "Sa Sainteté", ou simplement "Monseigneur" ! Ou alors, il faut qu'ils soient prévu dans la liste à la base...
Eh oui... Je ne vous le fait pas dire... Voici comment faire pour bloquer la liste : cliquez sur le champ Titre, cliquez sur l'onglet Liste de choix, et dans l'option Limiter à liste : Choisissez Oui.

A partir de maintenant, vous ne pouvez plus entrer autre chose que ce qui est
proposé. Essayez : Lancez la table en mode saisie de données, et essayez
d'écrire Plouf dans un champ titre :
. On dirait que vous
pouvez MAIS... Il suffit que vous cliquez ailleurs, ou que vous appuyer sur
ENTER
ou tabulation
pour que
surgisse ce message d'erreur :

et, dès que vous cliquez sur OK (Pas le choix...), la liste s'ouvre
automatiquement pour bien vous faire comprendre que vous DEVEZ choisir dans la
liste : 
Disons que très souvent, c'est ce qu'on fait... Mais bon... Dans certains cas, on peut la laisser libre... Un peu comme si la liste déroulante n'était dans certains cas qu'une proposition. Par exemple, une liste déroulante dans le champ prénom, avec comme propositions les prénoms les plus courants, mais comme vous ne pourrez jamais mettre tous les prénoms du monde, vous êtes bien obligé de la laisser libre
Vous avez raison. Moi non plus je n'en mettrais pas. Mais c'est possible, c'était pour donner un exemple.

Ben oui... Ils datent du temps ou nous n'avions pas encore installé de liste déroulante, ou encore quand nous ne l'avions pas bloqué..
Mais comment voulez-vous qu'il les corrige ??? Comment Access pourrait-il deviner que Mr. doit devenir Monsieur, et Mme doit devenir Madame ? Il est malin, mais pas à ce point...
Oui. Il aurait pu. mais entre nous, c'est quand même sympa qu'il les laisse... ça laisse une trace de ce que vous avez entré
Tout à fait. Oui. Exactement !!! Cette réflexion est juste, vraiment très juste !!!! Ici, nous sommes en cours, ce n'est donc pas grave, mais imaginez que vous bloquez votre liste déroulante alors que vous avez entré quatorze mille clients, vous imaginez le travail de recherche des titres écris faux que vous allez avoir ? Un travail colossal !!!
Là, je ne vous le fait pas dire !!! Un peu d'effort à la base va vous éviter bien des heures de travail de fourmi à la recherche des erreurs
Il est possible de créer des listes déroulantes avec plusieurs colonnes.
Comment faire et pourquoi ? Imaginez par exemple que la table est remplie par
une personne ne parlant que l'anglais. Ce serait dès lors sympathique de lui
expliquer ce qu'elle choisit dans la liste déroulante. Imaginons par exemple un
champ CouleurPreferee, qui serait composée d'une liste de couleurs en français
donc, mais qui montrerait le nom des couleurs en anglais, dans une 2ème colonne,
comme ceci :
. Et lorsqu'on choisit une valeur, même en anglais, c'est la
valeur française qui se mémorise (Oui, parce que sinon, la table va être
complètement instable : avec parfois la valeur française, parfois la valeur
anglais : ça ne va pas.) Bon alors, comment faire ? Allons-y ensemble :
Voilà. C'est terminé. Testez (Lancez la table en mode saisie de données) :

| La liste déroulante (appelée également liste
modifiable) permet de choisir dans une série de valeurs prédéfinies une
valeur. Dans notre exemple, nous avons créé une liste déroulante contenant
les différents titres possibles : Monsieur, madame, mademoiselle. Il est
possible par la suite de soit recommencer la liste avec d'autres valeurs,
ou encore d'ajouter ou de retirer des valeurs manuellement grâce à la
propriété Source, qui se trouve dans l'onglet Liste de choix. Nous avons également vu qu'il est possible d'accepter ou de refuser que des valeurs n'apparaissant pas dans la liste déroulante soient quand même écrites (Propriété Limiter à Liste de l'onglet Liste de choix) |
Pour voir les solutions, il vous suffit de sélectionner le questionnaire ci-dessus : 3 petites étoiles *** apparaîtront en face des bonnes réponses. |
|
Vous allez créer une base de données Agence Matrimoniale.MDB, dans laquelle vous allez installer une table T_Candidat, qui va contenir les données suivantes :
Voici trois données exemple :
L'exercice consiste principalement à créer judicieusement les listes déroulantes sur les bons champs, avec les bonnes options (Notamment s'il s'agit d'une liste "Bloquée") |
Si vous n'êtes pas tout à fait certain d'avoir suivi correctement toutes les étapes de cette leçon, vous avez la possibilité de télécharger ici la version de procd.mdb exactement dans l'état ou elle devrait être à la fin de cette leçon.
| Lors de la prochaine leçon, vous allez réellement "Booster" vos listes déroulantes : En effet, il est carrément possible de créer des listes déroulantes basées sur d'autres tables, ce qui va nous permettre d'avoir de très grandes listes de choix avec un minimum de travail : Pour les pays par exemple, une table séparée des pays s'impose, au vu du nombre de choix possibles (Plus de 200) |