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.