[VBA] Nom champs stockés dans une variable

Nom champs stockés dans une variable [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 24-07-2007 à 13:00:57    

Bonjour à tous.
 
Voici mon probleme.
J'ai un formulaire contenant un sous formulaire (chargé en fonction de la value d'une listbox).
A un moment donné je me retrouve avec un nom de champs (du sous formulaire chargé) dans une variable.
 
J'aimerais savoir comment modifier la value du champs contenu dans la variable.
 
J'ai essayé plein de trucs et j'ai recherché sur le net mais impossible de trouver.
 
Merci de votre aide.

Reply

Marsh Posté le 24-07-2007 à 13:00:57   

Reply

Marsh Posté le 24-07-2007 à 13:22:08    

Tu n'as pas précisé mais je suppose qu'il s'agit de VBA sous Access ?

 

Si oui, alors il suffit d'accéder à la collection .Controls de ton objet sous-formulaire.
La syntaxe :
Me.ControleSSFormulaire.Form.Controls("champ" ).value = ...
Évidemment ControleSSFormulaire doit être remplacé par le vrai nom de ton objet sous-formulaire.

 

De mémoire, donc à vérifier quand même.


Message édité par tegu le 24-07-2007 à 13:23:01
Reply

Marsh Posté le 24-07-2007 à 15:54:59    

Merci ca marche.
 
Et commence faire pour appeller l'évènement Click du controle (contenu dans la variable)?

Reply

Marsh Posté le 24-07-2007 à 16:02:15    

ben tu te contentes de faire
 
toncontrole_click

Reply

Marsh Posté le 24-07-2007 à 16:21:21    

Oui mais le nom du controle est contenu dans une variable.
Par exemple, j'aimerais faire un truc du genre:

Code :
  1. Dim var as String
  2. var = "Bouton1"
  3. Call var & "_Click"


 
Mais bien sur ca ne fonctionne pas

Reply

Marsh Posté le 24-07-2007 à 16:56:13    

La fonction CallByName() devrait te plaire.
Voir ses paramètres dans l'aide en ligne et un message récent sur le forum HFR.

Reply

Marsh Posté le 25-07-2007 à 09:53:01    

CallByName pourrait correspondre à ce que je voulais.
Par contre la méthode appelé est une méthode d'un sous formulaire (donc je n'arrive pas à y acceder).
Je ne sais pas quelle syntaxe utiliser pour appeler une méthode d'un autre formulaire (public evidemment).

Reply

Marsh Posté le 25-07-2007 à 10:10:10    

nomduformulaire.nomdelafonction devrait faire l'affaire... :)

Reply

Marsh Posté le 25-07-2007 à 11:42:30    

Merci de votre aide.
J'ai pas réussi à utiliser CallByName (je me suis pas non plus plongé à fond dessus) mais j'ai trouvé un moyen d'esquiver le probleme.
 
Merci beaucoup.

Reply

Marsh Posté le 25-07-2007 à 12:25:49    

peux-tu donner ta solution, qu'elle serve au plus gd nombre stp ? :)

Reply

Marsh Posté le 25-07-2007 à 12:25:49   

Reply

Marsh Posté le 25-07-2007 à 13:36:52    

La fonction que je voulais appeler permettait de mettre à certains champs enabled à true ou false selon que la checkbox correspondant soit coché ou pas.
Donc au lieu d'appeler la fonction je le fais direct à la main (vu que j'ai le nom du champs).
 
Donc c'est plus une esquive qu'un solution

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed