5
Votre Assistante Le Blog : http://www.votreassistante.net/blog - le 10/10/2013 Article écrit par Lydia Provin du blog Votre Assistante Le Blog : http://www.votreassistante.net/blog 1 Créer une zone de liste en cascade avec Access Lorsque vous créez un formulaire avec Access, pour rendre la saisie plus rapide et ergonomique, une zone de liste en cascade peut être créée. Une zone de liste en cascade Access est une liste qui se met à jour selon une autre liste. Voici un exemple concret : dans un formulaire Clients, je voudrais choisir un pays et que la liste des villes ne maffiche que les villes correspondantes au pays choisi. Pour ce tutoriel, nous allons utiliser la base de données créée pour la gestion des factures. Vous la retrouverez dans lEspace membres. Pour commencer, nous allons créer 2 tables : une table T_Pays et une table T_Villes. Pour créer ces tables en gagnant du temps, jai saisi les données dans une feuille de calculs Excel que vous trouverez également dans lEspace membres. La manipulation est la même que dans le tutoriel sur la gestion des factures. Ouvrez la base de données et allez dans Données Externes > Excel . Dans la boîte de dialogue qui saffiche, indiquez lemplacement de la feuille de calculs avec le bouton Parcouriret laissez cochée Importer les données sources dans une nouvelle table de la base de données active. Cliquez sur Ok, puis Suivant, cochez la case Première ligne contient les en-têtes de colonnes, puis Suivant jusquà létape du choix du nom de la table que vous nommerez T_Pays. Cliquez sur Terminer et Fermer. Nous allons faire de même pour la table T_Villes. À la deuxième étape, choisissez longlet Villes puisquil est par défaut sur Pays et continuez jusquà létape du nom. Nommez cette table T_Villes, puis Terminez et Fermez.

Créer une zone de liste en cascade avec Access

Embed Size (px)

DESCRIPTION

Tutoriel pour apprendre à créer une zone de liste en cascade avec Access ? Comment créer une liste Access d'après une autre liste ? Comment faire en sorte qu'une liste se filtre d'après une autre avec Access ?

Citation preview

Page 1: Créer une zone de liste en cascade avec Access

Votre Assistante – Le Blog : http://www.votreassistante.net/blog - le 10/10/2013

Article écrit par Lydia Provin du blog

Votre Assistante – Le Blog : http://www.votreassistante.net/blog

1

Créer une zone de liste en cascade avec Access

Lorsque vous créez un formulaire avec Access, pour rendre la saisie plus rapide et ergonomique,

une zone de liste en cascade peut être créée.

Une zone de liste en cascade Access est une liste qui se met à jour selon une autre liste.

Voici un exemple concret : dans un formulaire Clients, je voudrais choisir un pays et que la

liste des villes ne m’affiche que les villes correspondantes au pays choisi.

Pour ce tutoriel, nous allons utiliser la base de données créée pour la gestion des factures. Vous

la retrouverez dans l’Espace membres.

Pour commencer, nous allons créer 2 tables : une table T_Pays et une table T_Villes.

Pour créer ces tables en gagnant du temps, j’ai saisi les données dans une feuille de calculs

Excel que vous trouverez également dans l’Espace membres. La manipulation est la même que

dans le tutoriel sur la gestion des factures.

Ouvrez la base de données et allez dans Données Externes > Excel .

Dans la boîte de dialogue qui s’affiche, indiquez l’emplacement de la feuille de calculs avec le

bouton Parcourir… et laissez cochée Importer les données sources dans une nouvelle table de

la base de données active. Cliquez sur Ok, puis Suivant, cochez la case Première ligne contient

les en-têtes de colonnes, puis Suivant jusqu’à l’étape du choix du nom de la table que vous

nommerez T_Pays. Cliquez sur Terminer et Fermer.

Nous allons faire de même pour la table T_Villes. À la deuxième étape, choisissez l’onglet

Villes puisqu’il est par défaut sur Pays et continuez jusqu’à l’étape du nom. Nommez cette table

T_Villes, puis Terminez et Fermez.

Page 2: Créer une zone de liste en cascade avec Access

Votre Assistante – Le Blog : http://www.votreassistante.net/blog - le 10/10/2013

Article écrit par Lydia Provin du blog

Votre Assistante – Le Blog : http://www.votreassistante.net/blog

2

Nous devons désormais insérer les champs créés dans la table T_Clients. Ouvrez cette table et

ajouter une liste de choix en cliquant sur la flèche de Cliquer pour ajouter, puis > Liste de

choix et relation .

Cochez Je veux que le champ Liste de choix extraie les valeurs d’une autre table ou requête et

cliquez sur Suivant.

Choisissez la table T_Pays et cliquez sur Suivant.

Page 3: Créer une zone de liste en cascade avec Access

Votre Assistante – Le Blog : http://www.votreassistante.net/blog - le 10/10/2013

Article écrit par Lydia Provin du blog

Votre Assistante – Le Blog : http://www.votreassistante.net/blog

3

Faites passer, dans les champs sélectionnés, grâce au bouton , le champ Pays et cliquez

sur Suivant jusqu’à l’étape du choix du nom du champ.

Dans cet exemple, nous souhaiterions que le formulaire permette de choisir un lieu de rendez-

vous, nous allons donc le nommer RDV_Pays et cliquez sur Terminer.

Faites de même avec la colonne suivante en choisissant cette fois la table T_Villes à la deuxième

étape. Cliquez sur Suivant et choisissez le champ Ville, cliquez sur Suivant jusqu’à l’étape du

nom. Nommez le champ RDV_Villes et cliquez sur Terminer.

Page 4: Créer une zone de liste en cascade avec Access

Votre Assistante – Le Blog : http://www.votreassistante.net/blog - le 10/10/2013

Article écrit par Lydia Provin du blog

Votre Assistante – Le Blog : http://www.votreassistante.net/blog

4

Pour l’instant, les listes déroulantes fonctionnent mais sont indépendantes. Fermez la table en

l’enregistrant.

Maintenant, nous allons créer un formulaire Clients.

Pour cela, cliquez sur l’Assistant Formulaire du menu Créer.

Choisissez la table T_Clients, sélectionnez tous les champs et cliquez sur Terminer. Fermez-

le et renommez-le (en cliquant droit dessus dans le panneau de navigation) en

F_Prise_de_RDV.

Ouvrez-le et passez en Mode Création . Placez-vous sur le contrôle

RDV_Villes et affichez la Feuille de propriétés de l’onglet Création. Dans l’onglet

Données, à la ligne Contenu, saisissez le code suivant à la place du code présent :

Select T_Villes.ID, T_Villes.Ville From T_Villes Where T_Villes.ID_Pays =

Forms!F_Prise_de_RDV.RDV_Pays

F_Prise_de_RDV.RDV_Pays est le chemin vers le contrôle du pays dans le formulaire et les

autres noms sont des références à nos tables.

Passez le formulaire en Mode formulaire . Notre liste en cascade est

créée. Si vous rencontrez des erreurs lors du clic sur les menus déroulants, c’est qu’une

référence n’est pas bien indiquée dans votre code.

Maintenant, le souci, lorsque l’on choisit un pays, puis une ville et que l’on change de nouveau

de pays, c’est que les villes correspondent toujours au pays précédemment choisi.

Pour régler ce problème, nous allons nous placer sur le contrôle RDV_Pays et aller dans l’onglet

Évènement de la Feuille de propriétés . À la ligne Sur changement, cliquez sur ,

choisissez le Générateur de code et cliquez sur Ok. Entre les lignes Private Sub

RDV_Pays_Change() et End Sud, saisissez :

Me.RDV_Villes.Requery où RDV_Villes correspond au contrôle de la ville.

Page 5: Créer une zone de liste en cascade avec Access

Votre Assistante – Le Blog : http://www.votreassistante.net/blog - le 10/10/2013

Article écrit par Lydia Provin du blog

Votre Assistante – Le Blog : http://www.votreassistante.net/blog

5

Fermez la fenêtre (le code est enregistré automatiquement) et passez votre formulaire en Mode

formulaire .

Votre zone de liste en cascade est désormais opérationnelle, vous n’avez plus qu’à enregistrer

votre formulaire.