En essayant de passer le nom d'une variable globale à une sous-routine et j'aimerais savoir comment la référencer. Par exemple, je pouvais faire le ci-dessous avec un contrôle:Référencement de la variable globale - MS Access
Private Sub passCtrlName(ctlName as String)
Me.Controls(ctlName) = "Whatever"
End Sub
Edit:
Par exemple
Public imGlobVar As String
Public Sub passGlobVar(frm as Form, ctlName as String, globVar as String)
frm.Controls(ctlName) = globVar
End sub
Et l'appeler comme Sub imaButton_Click privé() imGlobVar = "quelque chose" Appelez passGlobVar (Me, txtBox1, imGlobVar) Fin sous
2e édition:
Il semble que je pourrais certainement aboyer le mauvais arbre ici, alors je vais vous expliquer ce que j'essaie d'atteindre. J'ai un formulaire qui a des zones de texte pour l'adresse des utilisateurs (risque), avec une case à cocher en haut qui permet à l'utilisateur de sélectionner cette adresse est la même que les détails de contact déjà sur le système, et les zones de texte sont verrouillés.
Remplir les zones de texte est bien et fonctionne. Ce que j'utilise pour les variables globales est d'améliorer la convivialité (quoique légèrement). L'utilisateur peut ajouter de nouveaux détails, et s'ils cochent la case «faire la même chose que le contact», les détails qu'ils ont saisis sont stockés dans les variables globales, une pour chaque contrôle.
Si l'utilisateur a fait une erreur en cochant la case, il n'a pas perdu cette valeur, et en décochant la case, les valeurs saisies sont renvoyées. J'espérais créer une sous-routine dans laquelle je pourrais passer le nom de la variable globale et contrôler et appeler cette routine, plutôt que de l'écrire pour chaque contrôle. J'ai le sentiment que je pourrais utiliser la mauvaise technique pour atteindre mes objectifs. Mais en réponse à ma question initiale, il semble que vous ne pouvez pas passer des variables globales à des sous-routines de la manière que je souhaitais.
Il me semble que vous pourriez envisager d'utiliser une structure de mémoire au niveau du formulaire, comme un jeu d'enregistrements snapshop qui contient les valeurs d'origine des champs en question. C'est un cas où les Globals sont clairement la mauvaise portée. La question de savoir si la structure de données que vous finissez d'utiliser doit être publique ou non doit être déterminée. Si vous en avez besoin dans un sous-formulaire et qu'il va être défini dans le parent, alors si vous l'utilisez depuis le sous-formulaire, il doit être public. Mais c'est très différent de GLOBAL. –