Rechercher un enregistrement avec une liste déroulante dans un formulaire Access

Rechercher un enregistrement avec une liste déroulante dans un formulaire Access

Lors du tutoriel Mise à jour de champs Access après un choix dans une liste déroulante, je vous ai montré comment rechercher un enregistrement dans une liste déroulante afin d’en afficher les informations dans des contrôles indépendants. Cette technique est utile lorsque votre formulaire est basé sur au moins 2 tables, mais ne vous permet pas de modifier les informations directement dans ces contrôles. Dans ce tutoriel, nous allons voir comment créer simplement cette liste déroulante pour rechercher un enregistrement dans votre formulaire Access et pouvoir modifier les données affichées.

Dans l’Espace Membres, vous retrouverez la base de données utilisée.

Préparation du formulaire Access :

Pour commencer, créez un formulaire pour saisir des données dans la table Clients en cliquant sur la table T_Clients dans le panneau de navigation à gauche puis en cliquant sur l’onglet Créer > Assistant formulaire .

Dans la boîte de dialogue, sélectionnez tous les champs en cliquant sur le bouton . Cliquez ensuite sur Suivant 2 fois, sélectionnez Modifier la structure du formulaire et cliquez sur Terminer.

La différence avec le tutoriel précédent, c’est que les contrôles ne sont pas indépendants, car ils ont chacun leur source contrôle, c’est-à-dire que le champ ID_Client pointe sur le champ ID_Client, le champ Raison_sociale sur le champ Raison_sociale etc. Vous pouvez tout à fait repartir du formulaire créé lors du tutoriel sur la mise à jour de champs Access, mais il faudra modifier chacune des sources contrôles (dans l’onglet Données de la Feuille de propriétés ) pour pointer sur les bons champs.

Création de la liste déroulante de recherche :

Maintenant que le formulaire est créé, nous pouvons ajouter la liste déroulante. Pour cela, en restant en Mode création , dans l’onglet Création, cliquez sur l’icône Zone de liste déroulante  dans la liste des Contrôles (dans ce cas, j’utilise bien la liste déroulante, mais cela fonctionne également avec la Zone de liste ).

Dessinez la liste déroulante sur votre formulaire ou faites un clic dessus (vous pourrez la redimensionner ensuite) dans la partie Détail ou En-tête de formulaire à votre convenance.

Au moment où vous relâchez la souris, l’Assistant Zone de liste déroulante apparaît.

Si ce n’est pas le cas, vérifiez que le bouton Utiliser les Assistants Contrôle  soit activé en cliquant sur la petite flèche  permettant de dérouler la suite de la liste des contrôles dans l’onglet Création. S’il n’est pas activé, activez-le, supprimez la liste précédemment créée et recréez-la (il est également possible de la créer entièrement manuellement, mais il faudra créer la source, indiquer le nombre de colonnes et sélectionner la bonne macro, c’est donc plus rapide de passer par l’assistant).

Dans l’assistant, vous retrouverez les deux premières options qui apparaissent également lorsque vous créez une liste déroulante dans une table. Sélectionnez la 3e option Rechercher un enregistrement dans mon formulaire basé sur la valeur que j’ai sélectionnée dans la liste déroulante. Si cette 3e option n’apparaît pas, c’est que votre formulaire n’est pas basé sur une seule table (vérifiez-le en allant dans l’onglet Données de la Feuille de propriétés  après avoir sélectionné Formulaire dans cette dernière). Cliquez sur Suivant.

À cette étape, vous pouvez choisir un ou plusieurs champs à afficher dans la liste déroulante. Pour cet exemple, je vais choisir Raison_sociale et Nom_contact. Je clique sur le premier et clique sur la flèche , puis fais de même avec Nom_contact avant de cliquer sur Suivant.

Access me demande quelle taille je souhaite pour mes colonnes. Je peux donc les agrandir ou rétrécir comme je le ferais dans la table (ces tailles pourront être modifiées par la suite). Gardez la case Colonne clé cachée (recommandé) cochée, car elle permet de conserver l’ID_Client en tant que première colonne qui restera invisible. Cliquez sur Suivant.

Donnez un nom à votre nouvelle étiquette, Nom_client par exemple (il ne faut pas que ce soit le nom de l’une de vos étiquettes existantes). Cliquez sur Terminer.

Dans la Feuille de propriétés , vous avez désormais un nouveau contrôle qui apparaît (ModifiableX). Dans l’onglet Données, vous avez une requête SQL qui a été écrite sur la ligne Contenu. Si vous cliquez sur les 3 petits points en bout de ligne , vous pourrez modifier les champs que vous souhaitez afficher et leur ordre. En passant par l’onglet Événement, vous constaterez qu’une macro a été créée par Access automatiquement. Elle vous permet d’accéder à l’enregistrement sélectionné via la liste déroulante.

Enfin, dans l’onglet Format, 6 lignes nous intéressent particulièrement :

  • Nbre colonnes (nombre de colonnes) : 3, car j’ai 3 champs dans ma requête SQL. Si vous ajoutez ou supprimez des champs de cette dernière, n’oubliez pas de modifier ce chiffre, car dans le premier cas, le champ n’apparaitra pas et dans le second, vous aurez une colonne vide ;
  • Largeurs colonnes : la première fait 0 cm, car c’est l’ID_Client qui est caché, puis nous avons les 2 colonnes que vous pouvez redimensionner ;
  • En-têtes colonnes : Si vous mettez cette valeur à Oui, vous aurez le nom des champs que vous avez placés dans la requête SQL, d’où l’intérêt de mettre une légende à vos champs dans vos tables lors de leur création afin de ne pas vous retrouver avec des Raison_sociale et Nom_contact, mais bien Raison sociale et Nom du contact. Cette option est intéressante si vous avez plusieurs champs dans cette liste dont les données peuvent ne pas être explicites ;
  • Lignes affichées : par défaut, Access choisit d’afficher 16 lignes dans la liste. À vous de décider si vous souhaitez agrandir ou rétrécir la liste ;
  • Largeur : cette taille correspond à la largeur du contrôle. À ne pas confondre avec la ligne suivante ;
  • Largeur liste : cette taille correspond à la largeur de la liste lorsqu’elle est déroulée. Pour l’esthétisme, je choisis toujours la taille de la largeur égale au premier champ affiché de la liste déroulante (ici, Raison_sociale), puis la largeur liste égale à la somme des largeurs colonnes. Si j’ai mis en largeurs colonnes 0cm;5cm;3cm, je mettrais en Largeur 5 cm et en Largeur liste 8 cm, ce qui me permettra de ne pas avoir un champ trop grand une fois l’élément sélectionné dans la liste, mais de quand même voir tous les champs lorsque je suis en train de consulter la liste.

Enfin, n’oubliez pas de renommer votre contrôle en Nom_client (si vous avez nommé l’étiquette de cette manière avec l’assistant) en allant dans l’onglet Autres de la Feuille de propriétés  et en modifiant le nom ModifiableX. Modifiez également la Légende de l’étiquette pour y saisir un nom sans underscore si vous le souhaitez (Nom des clients par exemple) dans l’onglet Format.

Pour tester votre liste, passez-en Mode formulaire  et sélectionnez différents éléments de la liste : les données se chargent en fonction de la sélection. Votre liste étant créée à partir d’une requête, si vous ajoutez, modifiez ou supprimez des enregistrements de votre table, la liste sera à jour en permanence sauf pour les champs qui se trouvent dans la liste où, dans, ce cas, il faudra aller consulter un autre enregistrement pour voir la mise à jour dans la liste ou alors appuyer sur F5.

Pour terminer, vous pouvez, à la place d’une liste déroulante, créer une Zone de liste qui se crée exactement de la même manière à la différence qu’il n’y a pas de Largeur liste dans la Feuille de propriétés  puisque la liste est en permanence affichée entièrement et pas de Lignes affichées, car elles dépendent de la hauteur que vous lui attribuez.

Quand vous passerez en Mode formulaire , sur clic d’une ligne, les données seront chargées dans le formulaire.

Enfin, réagencez vos contrôles pour avoir un formulaire plus ergonomique et agréable à utiliser et n’oubliez pas d’enregistrer votre formulaire pour conserver votre nouvelle liste.

Téléchargez « Rechercher un enregistrement avec une liste déroulante dans un formulaire Access » au format PDF

Je vous propose un fichier annexe dans l’Espace Membres contenant la base de données utilisée dans ce tutoriel.

Newsletter

Laisser un commentaire

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

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code