Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Listes de choix, exercice Access
Dans ce cinquième
exercice Access, nous poursuivons les travaux entrepris sur la
structure de notre base de données par les
tables. Dans les exercices précédents, nous avions
typé les champs, défini leur
dimension et
format. Désormais, nous souhaitons ajouter des aides précieuses à l'insertion d'informations. Nous voulons parler des
listes déroulantes. Elles facilitent la saisie et homogénéisent l'information puisque la casse et l'orthographe y sont imposés. Toutes ne pourront cependant pas être conçues dans cet exercice. Certaines requièrent des interactions entre les
objets Access. Et nous ne sommes pas encore en mesure de les matérialiser.
Base de données source
Les précédents travaux ont consisté à définir les premiers réglages essentiels à la construction de l'ossature de notre
base de données. Nous devons donc les récupérer.
Nous retrouvons les six tables de notre
base de données. Elles sont listées dans le
volet des objets Access, sur la gauche de l'écran. Si vous les affichez en conception, comme la
table Produits par exemple, vous pouvez constater les réglages définis à ce stade.
Nous avons soigneusement défini les
types de données pour
chaque champ. Nous avons dimensionné ces derniers, en fonction des besoins, pour préserver les ressources. Nous optimiserons ainsi les performances de l'application finalisée. Elle sera en effet composée d'un grand nombre d'
objets Access articulés entre eux. Et puis, nous avons ajusté les
formats de ces
champs pour offrir plus de clarté à la lecture des informations.
- Dans le volet des objets Access, double cliquer sur la table Clients,
Nous l'affichons ainsi en mode
feuille de données. C'est précisément dans cette
table que nous souhaitons ajouter une fonctionnalité ergonomique précieuse. Les codes postaux sont nombreux. Les villes associées peuvent être multiples.
Les erreurs sont vites arrivées. Il peut s'agir d'une ville mal orthographiée ou ne respectant pas la casse imposée ou encore ne correspondant pas au code tapé. A la saisie d'un code postal, nous souhaitons qu'une
liste déroulante des villes correspondantes se charge. Si une seule ville correspond, nous souhaitons qu'elle s'inscrive automatiquement, dans le
champ Client_ville. Et c'est précisément ce mécanisme que nous ne sommes pas encore capables de bâtir.
Ces informations existent. Elles sont archivées dans la
table Communes. A ce titre, des anomalies sont à corriger sur les codes postaux inférieurs à 10000. Et des doublons sont à éliminer. C'est tout l'intérêt d'un
gestionnaire de bases de données. Il offre tous les outils pour torturer et manipuler l'information.
Une ville ou plusieurs correspondent à un code postal unique, inscrit dans le
champ Commune_dep. A l'avenir, nous bâtirons une
requête dynamique permettant d'isoler les communes d'un code postal désigné. Dès lors, nous pourrons exploiter les résultats de cette requête pour remplir dynamiquement la liste déroulante.
Listes déroulantes manuelles
Nous proposons de débuter les travaux par la construction de
listes déroulantes classiques. Il s'agit de les renseigner manuellement. Mais dès lors qu'elles seront créées, elles apporteront confort, gain de temps et uniformisation des données.
Dans le
champ Client_civilite de la
table Clients pour commencer, deux options sont possibles. Il s'agit soit de
Madame, soit de
Monsieur. Nous souhaitons offrir une
liste de choix pour ces deux valeurs. Une fois encore, en plus du confort, nous régulariserons l'inscription en évitant les différences de casse et les fautes de saisie.
- Dans le volet des objets Access, cliquer droit sur la table Clients,
- Dans le menu contextuel, choisir Mode création,
- Dans la vue en conception, sélectionner le champ Client_civilite,
- En bas de la fenêtre, cliquer sur l'onglet Liste de choix,
- Dans la zone Contrôle de l'affichage, choisir Zone de liste déroulante,
Instantanément, vous constatez l'apparition de nombreuses propriétés associées.
- Dans la zone Origine source, choisir Liste valeurs,
Nous indiquons ainsi à Access que nous souhaitons saisir les valeurs consistant à remplir la
liste déroulante.
- Dans la zone contenu, reproduire l'expression suivante :
'Madame';'Monsieur'
Chaque choix doit en effet être encadré de doubles côtes. Et chaque choix doit être séparé d'un autre par un point-virgule.
- Ensuite, basculer la propriété Limiter à liste sur Oui,
Ce réglage est important et il porte bien son nom. Seules deux options sont permises. Il s'agit des deux civilités. Grâce à cette propriété, nous n'autorisons pas l'utilisateur à taper une civilité différente de celles proposées. Voilà donc un paramétrage qui, en même temps qu'il améliore l'ergonomie, sécurise la saisie de l'information.
Il est temps de tester le comportement de cette
liste de choix.
- Enregistrer les modifications (CTRL + S),
- Puis, cliquer sur le bouton Affichage, à gauche dans le ruban contextuel Création,
Dans le
champ Client_civilite, pour n'importe quel enregistrement, vous constatez désormais la présence de la
liste déroulante. Elle propose de choisir entre les deux civilités imposées. Si vous tentez de saisir une information qui n'appartient pas à la
liste de choix, une
alerte Access se déclenche. Et elle est sans appel.
L'inscription n'est pas proposée par la
liste déroulante. En conséquence, la saisie est refusée. L'intégrité des données est donc préservée. Dans ce contexte, le fait de
limiter le choix à la liste déroulante, est tout à fait approprié.
Dans d'autres cas, le réglage inverse est appréciable. Dans la
table Produits, nous souhaitons simplifier l'actualisation ou l'enregistrement des stocks en suggérant une liste de quantités. Comme nous ne pouvons pas toutes les prévoir, nous devons offrir à l'utilisateur la possibilité de renseigner cette quantité manuellement.
- Cliquer sur la croix de l'onglet pour fermer la table Clients,
- Dans le volet des objets Access, cliquer droit sur la table Produits,
- Dans le menu contextuel, choisir Mode création,
- Dans la vue en conception, sélectionner le champ produit_stock,
- Puis, cliquer sur l'onglet Liste de choix en bas de la fenêtre,
- Dans la zone Contrôle de l'affichage, choisir Zone de liste déroulante,
- Dans la zone Origine source, choisir Liste valeurs,
- Dans la zone Contenu, taper l'expression suivante :
'1';'2';'3';'4';'5';'10';'20';'50';'100'
Cette fois, il est essentiel de conserver la
propriété Limiter à liste sur
Non. L'administrateur doit pouvoir renseigner d'autres valeurs de stocks.
- Enregistrer les modifications et afficher la table en mode feuille de données,
- Cliquer dans le champ produit_stock,
La
liste déroulante des valeurs saisies se propose en effet. Mais cette fois, si vous tapez une quantité non prévue, aucun message n'apparaît à validation. Toute saisie numérique entière est permise. La liste de choix émet des suggestions à des fins de simplification.
- Cliquer sur la croix de l'onglet pour fermer la table Produits,
- Dans le volet des objets Access, double cliquer sur la table Commandes,
- Puis, cliquer dans le champ Com_date,
L'icône d'un petit calendrier apparaît sur la droite de la case.
- Cliquer sur cette icône,
Un
calendrier apparaît offrant à l'utilisateur de définir une date au bon format, par simple clic sur sa case. Nous n'avons pas développé ce contrôle. Nous avons simplement défini le
type de données de ce champ sur
Date/Heure. Cette fonctionnalité ergonomique est fort précieuse au même titre que les listes déroulantes. Elle démontre une fois de plus l'intérêt de bien typer les champs en amont.
Piocher dans une table
Nous souhaitons maintenant aborder une liste déroulante particulière. Son contenu doit se nourrir d'informations existantes dans une autre table.
- Dans le volet des objets Access, double cliquer sur la table Produits pour afficher son contenu,
Le dernier champ de cette table est le
champ produit_code. Comme son nom l'indique, il peut héberger la valeur numérique d'un code promotionnel.
- Dans le volet des objets Access, double cliquer sur la table Remises,
C'est cette table qui recense les taux de remise accordés en fonction du code mentionné.
Et ce sont bien ces codes et non les valeurs associées en pourcentage, que nous devons inscrire dans le
champ produit_code de la
table Produits. En effet, la direction peut être amenée à modifier les valeurs des remises. Le code 9 pourrait par exemple allouer une remise de 60% au lieu de 70%, sur une période déterminée. Une requête ou une
liste déroulante Access doit donc se référer à cette table source pour effectuer la correspondance.
En conséquence, dans la
table Produits, nous souhaitons construire une
liste déroulante affichant les pourcentages mais inscrivant le code correspondant dans le champ.
- Dans le volet des objets Access, cliquer droit sur la table Produits,
- Dans le menu contextuel, choisir Mode création,
- Dans la vue en conception, sélectionner le champ produit_code,
- Cliquer sur l'onglet Liste de choix en bas de la fenêtre,
- Dans la zone Contrôle de l'affichage, choisir Zone de liste déroulante,
- Dans la propriété Contenu, choisir la table Remises,
- Dans la zone Nbre colonnes, taper le chiffre 2,
Nous choisissons ainsi d'afficher les données issues des deux champs de la
table Remises, dans la
liste de choix. L'information sur le pourcentage de remise est plus pertinente pour l'utilisateur. Mais comme nous prenons soin de conserver la
propriété Colonne liée à 1, c'est bien le code de la remise qui sera inscrit dans le champ, au choix dans la
liste déroulante.
Rappelons-le, grâce à cette liaison, si les informations sont mises à jour dans la
table Remises, elles sont instantanément actualisées dans les propositions de la
liste de choix.
- Enregistrer les modifications et cliquer sur le bouton Affichage du ruban,
- Puis, cliquer dans le champ produit_code d'un enregistrement,
La
liste déroulante apparaît. Elle affiche bien les informations des pourcentages de remise correspondant aux codes promotionnels. Si vous cliquez sur l'une des valeurs, seul le code est inscrit dans le
champ produit_code. C'est ainsi que nous pourrons faire la correspondance avec les données source, issues de la
table Remises.
Dans l'exercice suivant, nous aborderons les
masques de saisie. Ils sont fort précieux pour optimiser les réglages de tables.