Forum - Questions sur Access - variable persistante dans VBA


 2 membres
Connectés : ( personne )

  Sujet n° 833
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.

  
Réponse n° 1
--------
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)

  
Réponse n° 2
--------
le 13/05/2019 14:47
par pedro
 
visiteur

merci je regarde cela aujourd'hui.  Je suis dans un module général…   reviendrai avec le résultat.

  
Réponse n° 3
--------
le 13/05/2019 16:13
par Pedro
 
visiteur

dossier réglé (j'avais la même déclaration de PWP dans un module baptisé "test" (ou modTest) qui m'était passé sous le nez. 

  
sujet actif   sujet clos   Important!   Nouveau  
Rectifier message   Clôturer sujet   Remonter sujet