Etiquette associée à un objet
Comment, en VBA, déterminer quelle étiquette (intitulé) est associée à un objet de formulaire ?
Le problème
- En fait, il n’est pas possible directement de trouver l’étiquette à partir d’un objet.
- L’inverse est plus facile : si une étiquette est associée à un objet, la propriété
Parent
de cette étiquette donne l’objet en question (si l’étiquette est indépendante, son parent est le formulaire himself).
La solution
Si le formulaire est ouvert en mode Création, cette ligne donne l’objet associé à une étiquette (manipulable par une variable objet, donc !) :
1 |
Forms![Nom du formulaire]![Nom de l'étiquette].Parent |
La ligne suivante donne au contraire le nom de l’objet (variable de type String) :
1 |
Forms![Nom du formulaire]![Nom de l'étiquette].Parent.Name |
Exemple
Dans le formulaire ci-contre, l’étiquette (pointée par la souris) se nomme lblClients
et la zone de liste placée dessous lstClients
.
Pour afficher "lstClients"
en connaissant "lblClients"
, vous pouvez écrire :
1 |
MsgBox Forms![frm Liste Clients]![lblClients].Parent.Name |