formateur informatique

Afficher des valeurs par défaut dans des listes déroulantes

Accueil  >  Bureautique  >  Access  >  Access VBA  >  Afficher des valeurs par défaut dans des listes déroulantes
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner  Youtube    Vidos astuces Instagram
Sujets que vous pourriez aussi aimer :


Valeurs par défaut de listes déroulantes

Au chargement d'un formulaire Access, il est souvent opportun de proposer des valeurs par défaut dans des listes déroulantes plutôt que de les garder muettes, tant que le premier choix n'a pas été effectué.

Valeurs par défaut dans des listes déroulantes reliées entre elles sur un formulaire Access

Sur l'exemple illustré par la capture, l'utilisateur travaille sur un formulaire offrant trois listes déroulantes reliées entre elles. S'il choisit un département avec la première liste, la deuxième lui offre toutes les villes de ce département. S'il choisit une ville de ce département avec cette deuxième liste, la troisième restreint ses propositions d'activités strictement à celles recensées dans cette ville pour ce département. Ce sont des syntaxes Sql avec Clauses Where qui sont exploitées en sources de données de ces listes déroulantes pour les articuler entre elles.

Mais surtout et comme vous avez pu le constater, chacune d'entre elles est remplie d'une valeur par défaut au premier chargement du formulaire. Naturellement, les listes dépendantes piochent la première proposition dans les choix restreints, induits par les liaisons qui les animent.

Base de données Access à télécharger
Pour démontrer cette nouvelle astuce VBA Access, nous suggérons d'appuyer les travaux sur une base de données offrant ces trois listes déroulantes reliées en cascade. Ainsi, nous l'exécutons.

Listes déroulantes liées sur formulaire Access

Comme vous pouvez le voir, les trois listes déroulantes sont bien présentes. Mais elles sont muettes effectivement au premier chargement. Si vous désignez des valeurs en cascade, elles réagissent entre elles, comme nous l'avions annoncé, pour proposer des choix entonnoirs.

Initialiser au chargement du formulaire
Pour que des valeurs soient proposées par défaut, nous devons entreprendre des actions au chargement du formulaire, ou plus précisément dès que celui-ci est activé.
  • A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
  • Dans les propositions, choisir le mode Création,
Nous basculons ainsi dans la vue en conception du formulaire et ce dernier est sélectionné par défaut. C'est ce qu'indique la feuille de propriétés.
  • Activer l'onglet Evénement de sa feuille de propriétés,
  • Cliquer sur le petit bouton associé à son événement Sur activation,
  • Dans la boîte de dialogue qui suit, choisir le générateur de code et valider par Ok,
Nous basculons ainsi dans l'éditeur VBA Access entre les bornes de la procédure événementielle Form_Current. Son code VBA se déclenchera à chaque activation du formulaire, donc au chargement notamment. Vous notez de même la présence de deux autres procédures nommées respectivement dep_Change et ville_Change. Nous les avions développées à l'occasion d'une précédente astuce pour actualiser les données aux changements de valeurs dans les listes et pour réinitialiser les valeurs portées par chacune d'entre elles.

Valeurs par défaut et listes déroulantes
C'est une astuce VBA Access qui permet de charger une valeur par défaut dans une zone de liste. Cette astuce consiste à affecter le contrôle lui-même sur une des valeurs qu'il porte. C'est la collection ItemData d'un contrôle de zone de liste déroulante qui permet de pointer sur l'une d'entre elles, en fonction de l'indice qui lui est passé en paramètre, par exemple 0 pour la première donnée. Ces trois zones de liste se nomment respectivement dep, villes et activites.
  • Dans les bornes de la procédure Form_Current, ajouter les instructions VBA suivantes :
Private Sub Form_Current()
dep = dep.ItemData(0)
villes = villes.ItemData(0)
activites = activites.ItemData(0)

End Sub
  • Enregistrer les modifications (CTRL + S) et basculer sur le formulaire (ALT + Tab),
  • Exécuter ce dernier, par exemple avec la touche F5 du clavier,
Valeurs par défaut au chargement du formulaire Access dans des listes déroulantes reliées

Comme vous pouvez l'apprécier, la première liste déroulante affiche automatiquement le premier département qu'elle porte. Et comme ces trois listes sont reliées entre elles grâce à des travaux précédents, la deuxième affiche naturellement la première ville de ce département tandis que la dernière propose la première activité recensée pour cette ville dans ce département.

Si vous changez de département, les deux listes dépendantes effacent leurs valeurs par défaut. C'est le code VBA qui était déjà en place, qui s'en charge. Et les contenus de ces listes sont bien réajustés en fonction des choix parents.

Valeurs par défaut aux changements
Nous souhaitons maintenant exploiter le principe précédent pour afficher les premières valeurs dans les listes dépendantes, dès lors qu'un changement est opéré en amont. Pour cela, il suffit d'adapter les procédures événementielles dep_Change et villes_Change.
  • Revenir dans l'éditeur VBA Access,
  • Adapter ces deux procédures événementielles comme suit :
Private Sub dep_Change()
DoCmd.Requery
villes = villes.ItemData(0)
activites = activites.ItemData(0)

End Sub

Private Sub villes_Change()
DoCmd.Requery
activites = activites.ItemData(0)
End Sub


Très simplement, nous remplaçons les lignes consistant à effacer la précédente valeur portée. Lorsque le département est changé, nous chargeons la première ville dépendante dans la deuxième liste et la première activité associée dans la troisième. Lorsqu'une autre ville est choisie, nous chargeons la première activité qu'elle propose dans la troisième liste.

Valeurs par défaut dans les listes déroulantes dépendantes au changement dans la liste parent

Vous pouvez désormais constater ces propositions automatiques sur le formulaire en opérant différents choix dans les trois listes déroulantes dépendantes.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn