Bonjour.
J'ai actuellement un programme sous Access avec, dans un formulaire, des boutons pour faire telle ou telle action.
Le probleme c'est qu'il peut y avoir plus de 10 boutons a disposition. Chaque bouton a son etiquette permettant de savoir ce qu'il permet d'obtenir. Lorsqu'on veut lancer quelque chose de particulier, il faut faire le tour de tous les boutons disponibles. Chaque bouton lance une procedure differente (sub).
Pour simplifier, je souhaite faire les choses suivantes :
- une zone de choix contiendrait les libelles des differents boutons actuels
- a un libelle correspondrait un nom court. Une table contient le lien entre le nom court et le libelle a afficher dans la zone de choix et est la source de cette zone.
- Lorsque l'utilisateur a clique sur l'une des lignes, je souhaite lancer une procedure qui correspond au nom court recupere
- Je rajoute donc le nom court dans une variable declaree precedemment avec dim. Exemple variable "nom_court".
Je ne souhaite pas utiliser des If directement dans VBA.
Pour lancer une procedure a partir d'une autre procedure, il suffit de donner le nom de la procedure qu'on veut lancer. Sauf erreur de ma part, on peut lancer aussi en rajoutant, devant le nom de la procedure a lancer, les mots "Call" ou "Run".
Le probleme, c'est que VBA ne semble pas accepter de lancer une procedure avec une variable. Il lui faut directement le nom de la procedure a lancer.
Exemple de code
VBA bloque sur la ligne "run nom_court".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 dim Tb as recordset dim Nom_court as string sub lancement set tb=currentdb.opendynaset("Table_noms_cours") nom_court= tb!nom_court tb.close run nom_court
Message affiche : "Expected procedure, not variable".
Est-il possible de lancer une procedure a partir d'une variable dans VBA ? Si oui, comment ?
Merci.
Partager