Bonjour,
Pour faire plaisir à Pierre FAUCONNIER , je m'en vais le contredire et affirmer qu'il est tout à fait possible d'affecter à une propriété événementielle une expression consistant en un appel de fonction. On a déjà vu cette approche dans différents sujets traités sur le forum Access.
C'est vrai que ce n'est pas une manière habituelle de gérer les événements puisqu'on a généralement recours à une macro ou à une procédure événementielle.
Mais dans le cas présenté par El_Manu, on peut comprendre qu'il ne souhaite pas créer une procédure événementielle puisqu'il veut modifier dynamiquement son sous-formulaire (ajout de contrôles dans un formulaire en mode création).
Alors, par mesure de simplicité il veut passer par une fonction (une macro ? c'est exclu si on veut passer des paramètres ) et je trouve que c'est un bon choix.
La forme correcte de la procédure est bien une définition de fonction:
1 2 3
| Public Function fctTmp(strTmp As String)
MsgBox strTmp
End Function |
La syntaxe pour l'affectation de la propriété OnClick est correcte.
objElement.OnClick = "=fctTmp(" + Chr(34) + strLabel + Chr(34) + ")"
Le message d'erreur donné par El_Manu est typiquement celui qu'on obtient si on a, à tort, défini une procédure de type Sub.
El_Manu,
les différents essais infructueux que tu rapportes sont bizarres voire "inquiétants".
A ta place, je décompilerai, compacterai et recompilerai tout ça (avec plein de sauvegardes évidemment ).
_
Partager