Paramétrage de la zone de liste déroulante d’un champ d’une table Microsoft Access

Dans une base Access, il est possible d’afficher une liste déroulante pour que l’utilisateur sélectionne une valeur dans une liste, plutôt qu’il saisisse la valeur. :

image

Nous allons définir cette liste au niveau de la table. Ainsi, la zone de liste déroulante s’affichera en lieu et place d’une zone de texte :

  • dans la table en mode Feuille de données,
  • dans toute requête utilisant le champ de la table,
  • dans les formulaires et les états basés sur cette table.

Nous évoquons 4 méthodes possibles pour créer une telle liste. La méthode 1 est la plus proche du fonctionnement d’Excel, quand on utilise Données > Validation des données. Ce n’est pas la plus pratique car on continue de stocker du texte et non des nombres, et les données affichées sont toujours celles qui s’affichent. On préfèrera la méthode 4 qui affiche du texte à l’utilisateur tout en stockant une valeur numérique dans la table.

Si vous êtes pressés, appliquez directement cette méthode 4, sans faire les 3 premières.

La base exemple

Nous partons d’une base Access toute simple, que vous pouvez télécharger ici pour faire les exemples de méthode de cette article.

Une table tSociete se présente ainsi :

image

Le champ Secteur est de type Texte court (anciennement Texte) pour la méthode 1. Nous aurons besoin de changer ce type en Numérique pour les 3 autres méthodes.

Méthode 1 : texte

L’utilisateur sélectionne un élément d’une liste :

image

La liste contient du texte, et une sélection stocke du texte dans le champ.

  1. Sélectionnez le champ Secteur
  2. Dans le volet Propriétés du champ, cliquez sur l’onglet Liste de choix
  3. Modifiez les propriétés suivantes :
Propriété Valeur
Contrôle de l’affichage
([2007] Afficher le contrôle)
Zone de liste déroulante
Origine source Liste valeurs
Contenu Industrie;Commerce;Logistique

Laissez les autres paramètres sur leur valeur actuelle :

image

Méthode 2 : numérique

Si vous avez testé la méthode 1, vous devez à ce stade :

  1. En mode Feuille de données, effacer les données du champ Secteur
  2. En Mode Création, modifier le type de données en Numérique, au lieu de Texte court.

Ce qui donne :

image

Nous voulons stocker des nombres dans le champ, mais toujours afficher du texte dans la liste. Pour l’utilisateur, aucun changement visuel par rapport à la méthode 1. C’est seulement le format des données stockées qui change. Préférez cette méthode à la première.

La liste contient du texte, et une sélection stocke du texte dans le champ.

  1. Sélectionnez le champ Secteur
  2. Dans le volet Propriétés du champ, cliquez sur l’onglet Liste de choix
  3. Modifiez les propriétés suivantes :
Propriété Valeur
Contrôle de l’affichage
([2007] Afficher le contrôle)
Zone de liste déroulante
Origine source Liste valeurs
Contenu 1;Industrie;2;Commerce;3;Logistique
Nbre colonnes 2
Largeurs colonnes 0cm

Le dernier paramètre se comprend ainsi : masque la première colonne (0cm) et utilise le reste de la largeur de la colonne pour afficher les autres colonnes. Par exemple, pour masquer la 2nd colonne, on aurait ;0cm.

Laissez les autres paramètres sur leur valeur actuelle :

image

Quand l’utilisateur sélectionne Industrie dans la liste, c’est la valeur 1 qui est stockée dans la liste :

image

Le gros avantage de cette méthode est que vous pouvez changer le texte affiché de tous les enregistrements, tout simplement en modifiant la propriété Contenu. Par exemple, pour afficher :

image

Il aura suffit de modifier la propriété Contenu comme ceci :

image

Méthode 3 : numérique dans une table

1-. Créez la table tSecteur

  1. Créer > Création de table
  2. Saisissez SecteurID en Nom de champ et sélectionnez NuméroAuto en Type de données
  3. Saisissez Libelle en Nom de champ et sélectionnez Texte court en Type de données
  4. Enregistrez (CTRL + S)
  5. Saisissez le nom tSecteur
  6. A la question d’Access demandant de créer une clé primaire, cliquez sur Oui.
  7. Saisissez les données suivantes dans la table (le champ SecteurID se remplit tout seul) :
    image
  8. Fermez la table tSecteur

2-. Modifiez la table tSociete

  1. Ouvrez la table tSociete en mode Création
  2. Renommez le champ Secteur en SecteurID. Laissez le type Numérique.
  3. Modifiez les propriétés suivantes :
Propriété Valeur
Contrôle de l’affichage
([2007] Afficher le contrôle)
Zone de liste déroulante
Origine source Table/Requête
Contenu tSecteur
Nbre colonnes 2
Largeurs colonnes 0cm
  1. Laissez les autres paramètres sur leur valeur actuelle, ce qui donne :
    image
  2. Enregistrez la table (CTRL + S)

L’avantage de cette méthode est que les valeurs affichées peuvent être modifiées dans une table (tSecteur), et non dans une propriété de la table (la propriété Contenu de la table tSociete de la méthode précédente). On n’a donc plus besoin de modifier la structure d’une table (tSociete) mais simplement d’ajouter ou modifier des enregistrements d’une table.

Méthode 4 : numérique avec une requête sur une table

C’est la méthode ultime ! Elle rassemble tous les avantages.

1-. Modifiez la table tSecteur

  1. Ouvrez la table tSecteur en mode Création (CTRL + Entrée sur la table)
  2. Ajoutez le champ LibelleLong de type Texte court
  3. Affichez la table en mode Feuille de données (confirmez l’enregistrement)
  4. Remplissez le nouveau champ LibelleLong comme ceci :
    image
  5. Fermez la table.

2-. Modifiez la table tSociete

  1. Ouvrez la table tSociete en mode Création (CTRL + Entrée sur la table)
  2. Sélectionnez le champ Secteur
  3. Dans le volet Propriétés du champ, cliquez sur l’onglet Liste de choix
  4. Modifiez les propriétés suivantes :
Propriété Valeur
Contrôle de l’affichage
([2007] Afficher le contrôle)
Zone de liste déroulante
Origine source Table/Requête
Contenu [Videz la zone]
Nbre colonnes 2
Largeurs colonnes 0cm
  1. A droite de la zone Contenu (qui est donc vide à cet instant), cliquez sur le bouton … (3 points) :
    image
    Vous êtes dans le Générateur de requête.
  2. Dans la boite Afficher la table, sélectionnez la table tSecteur et cliquez sur Ajouter.
  3. Double-cliquez sur le champ SecteurID.
  4. Double-cliquez sur le champ LibelleLong :
    image
  5. Dans la ligne Tri et dans la colonne LibelleLong, sélectionnez Croissant :
    image
  6. Fermez le fenêtre. Access vous demande si vous souhaitez Enregistrer les modifications apportées à l’instruction SQL et mettre à jour la propriété. Confirmez en cliquant sur Oui.
  7. De retour dans la structure de la table tSociete, passez en mode Feuille de données (confirmez la demande d’enregistrement), ce qui affiche :
    image

Cette méthode est la plus pratique, car elle réunit tous les avantages:

  • vous stockez des nombres (SecteurID de la table tSecteur)
  • vous sélectionnez les champs à afficher dans la liste déroulante (ici le 3e champ)
  • vous décidez de l’ordre d’affichage des éléments dans la liste (ici croissant)

Gonzague DUCOS a écrit 35 articles

Formateur et développeur Office VBA et Windev

1 thoughts on “Paramétrage de la zone de liste déroulante d’un champ d’une table Microsoft Access

  1. Michaël MARLE dit:

    Gonzague bonjour,
    Tout d’abord très bon article!
    Pour les méthodes 3 et 4, est-il possible depuis la zone de liste déroulante dans la table tSociete de renseigner une entrée qui ne figure pas dans la liste et qui vient s’incrémenter dans la liste de la table tSecteur ?
    Cordialement.

Laissez une réponse

Votre adresse e-mail ne sera pas publié Les champs requis sont marqués *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.