Ajouter un élément dans une liste déroulante – Episode 3

Précédemment, sur nos écrans 🙂 il a été question d’ajouter un élément dans une liste déroulante (tout en le stockant dans une table). L’épisode 1 donnait une première technique simple mais limitée, l’épisode 2 expliquait la variante la plus classique d’Access.

Ce troisième épisode aborde une autre façon de faire, disponible sur Access 2007, Access 2010, Access 2013 (et les autres à venir !). C’est plutôt simple, efficace, pas de code VBA ni de formules magiques.

Scénario

Je dispose de 2 tables :

  • une table tbl Personnes, avec une liste simple de personnes. Dingue. 🙂
  • une table tbl Tâches, avec une liste de… Devinez !

Les 2 tables sont liées : 1 personne peut exécuter plusieurs tâches, mais 1 tâche ne peut être faite que par 1 personne (dans ce scénario en tout cas…). On passera ici sur la création des tables et des relations, c’est un autre sujet. Voici le schéma des relations :

relations_personnes_taches.png

Par contre, un point important pour la suite : la relation entre les tables n’a pas été faite manuellement (dans la fenêtre Relations), mais a été construite indirectement à l’aide de l’Assistant Liste de choix. Dans les grandes lignes :

  1. Vous avez créé vos 2 tables.
  2. Vous ouvrez la table des tâches (qui dépend de celle des personnes, et est donc située du côté Plusieurs de la relation).
  3. Vous vous placez sur le champ Code Personne.
  4. Dans le type de données, vous choisissez Assistant Liste de choix.
  5. Vous suivez les différentes étapes pour créer une liste déroulante basée sur la table Personnes.

A la fin, si tout est ok, vous devriez pouvoir :

  1. Ouvrir la table des tâches en mode de saisie.
  2. Cliquer dans le champ Code Personne.
  3. Obtenir une liste déroulante pour choisir une personne.

Notre problème reste, comme dans les articles précédents, de pouvoir ajouter des personnes dans cette liste !

Les formulaires

Comme pour l’épisode 2 – que je vous conseille de (re)lire -, il vous faut 2 formulaires : le premier pour consulter et mettre à jour les personnes, le second pour consulter et mettre à jour les tâches. Ces formulaires ne présentent pas de piège particulier, les voici pour exemple :

formulaire_personnes_taches.png

formulaire_taches_taches.png

La liste déroulante

Sur le formulaire des tâches, la liste déroulante a été créée automatiquement, parce qu’elle existe déjà au niveau de la table tbl Tâches. Si vous la déroulez, vous retrouvez les personnes, mais il n’est pas possible d’en ajouter…

formulaire_taches_liste1.png

Vous pourriez créer un bouton Ajouter une personne, exactement comme dans l’épisode 2… Et ce serait tout à fait correct. Mais il y a bien plus simple dans Access 2007, 2010 et 2013 :

  1. Ouvrez la table des tâches en mode Création.
  2. Placez-vous sur le champ Code Personne.
  3. Activez l’onglet Liste de choix, en bas de l’écran. Vous devriez y retrouver un grand nombre de réglages, puisqu’une liste déroulante est associée à ce champ.
    taches_table.png
  4. Réglez la propriété intitulée Formulaire Modifier les éléments de liste (génial, le nom 😉 ), en y renseignant le nom de votre formulaire Personnes.
  5. Une balise active (l’icône en forme d’éclair) devrait s’afficher. Cliquez dessus, et choisissez l’option Mise à jour de toutes les propriétés… Ceci aura pour effet de répercuter le réglage dans les objets construits « par-dessus » la table, comme nos formulaires.

Tester !

Ben vala, c’est terminé, vous attendiez sans doute 200 lignes de VBA, désolé de vous décevoir ! 🙂

  1. Ouvrez votre formulaire de tâches.
  2. Déroulez la liste des personnes. Vous remarquez que, maintenant, une nouvelle icône s’affiche sous la liste.
    formulaire_taches_liste2.png
  3. Si vous cliquez sur l’icône, Access ouvre automatiquement le formulaire de personnes dans un nouvel onglet.
  4. Et lorsque vous refermez cet onglet, vous revenez au formulaire de tâches, avec la liste à jour.

Vous aimerez aussi...

4 réponses

  1. BG dit :

    Un grand merci pour cet article. Vraiment simple et efficace. MERCI.

  2. Hervé Inisan dit :

    nexeg > Les ajouts faits par AddItem sont dynamiques, ils ne sont donc pas persistants. S’il faut conserver les valeurs nouvelles, la solution naturelle dans Access est bien de baser la liste sur une table.

    A moins que… La colonne unique contient quoi précisément ?

  3. nexeg dit :

    Bonjour, J’utilise la v2010, avec la possibilité, de la part du système, de rajouter des données dans la LISTE de VALEURs attachée à 1 liste déroulante. Ca marche très bien à partir de la commande AddItem…
    Le problème est que lorsque je quitte le formulaire, cette liste est réinitialisée… Je n’ai besoin que d’1 colonne. Je pourrais régler cela à partir d’1 table certes, mais le système me va bien. Par contre, comment garder les évolutions de ma LISTE de VALEURS ?
    Merci de votre réponse

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *