formateur informatique

Listes déroulantes de tables, exercice Access

Accueil  >  Bureautique  >  Access  >  Access Débutant  >  Listes déroulantes de tables, exercice Access
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux, voici son url absolue :

Pour l'intégrer sur votre site internet ou blog, vous pouvez l'embarquer :

Sujets et formations similaires :


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.

Format, type et dimension de champ de table Access

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.

Table Access des clients avec champs pour code postal et ville

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.

Table Access des communes avec les codes postaux correspondants

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.

Réglages Access pour créer une liste déroulante manuelle et verrouillée

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.

Liste déroulante Access interdisant saisie de valeurs non prévues

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'

Propositions de choix dans une liste déroulante Access non limitée

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,
Liste déroulante de choix Access proposant des quantités en stock et autorisant autres saisies

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,
Contrôle calendrier dans champ de table Access pour choisir une date par clic

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é.

Table Access des taux de remise sur articles en fonction des codes de promotion

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.

Liste déroulante Access à deux colonnes prélevant les valeurs dans une autre table

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,
Liste déroulante Access à plusieurs colonnes avec propositions issues autre table

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.

 
Sur Facebook
Sur G+
Sur Youtube
Les livres
Contact
Mentions légales



Partager la formation
Partager sur Facebook
Partager sur Google+
Partager sur Twitter
Partager sur LinkedIn