Forum - Questions sur Access - variable persistante dans VBA
le 11/05/2019 : 16:15
par Pedro
visiteur
Bonjour ça fait bien longtemps que je ne suis pas passé par ici...
dans mon application VBA-Access, j'ai fait une boucle pour assurer le rattachement ODBC vers une source externe. La boucle fonctionne mais pour le mot de passe à utiliser, je n'arrive pas à le faire passe autrement qu'en l'inscrivant en clair dans le code. Je cherche la solution qui m'apparaît simple mais je n'y arrive pas.
dans un module, j'ai une variable
public pwp as variant
et la sub suivante:
sub identite() pwp = inputbox("c quoi le pwd") endsub
dans mon application, une des premières chose que je fais est de faire le Call identite(). Et là ça me demande le inputbox. j'entre une valeur et tout va bien. J'observe aussi cette même valeur dans la fenêtre espion. Cependant, je n'arrive pas à récupérer par la suite le contenu de ma variable pwp. Lorsque je le fais via le print.debug pwp j'ai un message d'erreur de nom ambigu et je ne comprend pas.
Ai-je la bonne manière ? merci de m'aider.
--------
le 12/05/2019 : 12:55
par 3Stone
Administrateur
Bonjour,
Citation : « Pedro »
dans un module, j'ai une variable
Module de classe ("sous" un formulaire) ou module général ?
Citation : « Pedro »
Cependant, je n'arrive pas à récupérer par la suite le contenu de ma variable pwp.
Pour être accessible de partout, il faut déclarer la variable dans un module général (donc pas dans un module d'un formulaire.
Citation : « Pedro »
Lorsque je le fais via le print.debug pwp j'ai un message d'erreur de nom ambigu
Cela arrive lorsque Access n'arrive pas à déterminer ce que tu lui demande...
Tu as probablement une fonction ou un module qui se nomme pwp.
On évite ce genre de problème en nomment de manière particulière ces éléments.
Par exemple, les fonctions seront préfixées par "fn" et on aura donc pour une fonction PWP : fnPWP.
Idem pour les modules généraux... que l'on nommera mod_PWD et qui pourra contenir une fonction fnPWP et un variable PWP. Il est bon aussi de faire de même pour les variables. Une variable texte pourra se nomme txtPrenom, les variables numériques intNombre, lngValeur, etc.
Un peu de rigueur et surtout de la méthode évite tout ces petits problèmes.
Cordialement,
Pierre (3Stone)
Rectifier message Clôturer sujet Remonter