Bonjour,
Je débute en Access et je cherche à simplifier l'écriture et la maintenance de mon code via l'utilisation d'une macro.
Ce que je cherche à faire :
J'ai un formulaire avec une image qui correspond à un plan de bâtiment. Pour chaque emplacement de collaborateur du bâtiment j'ai 2 images superposées qui correspondent à l'état de l'emplacement (libre ou occupé). Ces images sont nommées img_[id_emplacement]_libre ou img_[id_emplacement]_occupe et suivant l'état de cet emplacement dans la base, l'image correspondante sera visible ou non. Au clic sur ces images, un nouveau formulaire s'ouvre pour l'édition des propriétés de cet emplacement (nom du collaborateur, n° de tel, etc ...).
J'ai donc un nombre assez conséquent d'images sur mon formulaire et pour ne pas à avoir à coder une procédure pour chaque image et pour chaque état (2 x nb emplacements) je pensais mettre la même macro sur chaque image et qu'elle récupère dynamiquement l'id_emplacement.
Ce que j'arrive à faire :
Pour l'instant j'ai une macro qui a pour action "ExécuterCode" et pour argument ma fonction avec l'id en dur : edit_emplacement ("22A") par exemple. Sauf que c'est totalement inutile s'il faut que je crée une macro par emplacement, ça me divise par 2 le travail malgré tout mais ça reste conséquent !
A noter :
Je n'arrive pas à récupérer directement l'id depuis vba car en cherchant à récupérer le control (l'image cliquée) via Screen.ActiveControl, j'ai une erreur d'exécution 2474 : "L'expression entrée requiert que le contrôle se trouve dans la fenêtre active" !?!
Si vous avez une idée de comment me dépatouiller ou une meilleure façon de faire ... Merci
Partager