Afficher la même fenetre pour remplir des textboxs en plusieurs endroi

Afficher la même fenetre pour remplir des textboxs en plusieurs endroi - VB/VBA/VBS - Programmation

Marsh Posté le 12-05-2003 à 14:12:32    

Salut à tous  :hello:  
Bon, là je dois faire du VB, et tant qu'à faire je voudrai le faire propre. Donc je vous explique :
Dans mon application, j'ai plusieurs fenêtres ou on peut entrer un "code fournisseur" dans une TextBox. A côté de ce textbox je trouvai de bon ton de mettre un bouton qui déclenchai une fenêtre afin de retrouver ce code fournisseur (par le nom par exemple) et de mettre ensuite la valeur à jour dans le TextBox.  
Comment faire ?
 
En effet je pensais creer une méthode sur ma fenetre de recherche de fournisseur qui prend le Textbox en paramètre, afin de le mettre à jour ensuite tranquillou.
MAIS VB PERMET PAS LE PASSAGE D OBJET EN PARAMETRE ! (ou alors j'ai pas tout compris)
 
Auriez vous une 'tit idée?

Reply

Marsh Posté le 12-05-2003 à 14:12:32   

Reply

Marsh Posté le 12-05-2003 à 14:47:05    

en effet, t'as pas tout compris ;)  VB permet bien le passage d'objet en paramètre et ça se passe exactement comme pour une variable ordinaire.
 
Quel est le message d'erreur?  A la compile ou au runtime?  Cet objet passe-t-il de ta form principale à la form liste des fournisseurs, ou le contraire?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 12-05-2003 à 15:10:43    

drasche a écrit :

en effet, t'as pas tout compris ;)  VB permet bien le passage d'objet en paramètre et ça se passe exactement comme pour une variable ordinaire.
 
Quel est le message d'erreur?  A la compile ou au runtime?  Cet objet passe-t-il de ta form principale à la form liste des fournisseurs, ou le contraire?


Bah il me met une erreur de conversion de type au runtime.  
Je passe l'objet de ma form principale vers la secondaire par le biais d'une methode de la secondaire, dont la signature est, typiquement  
 

Code :
  1. public sub RécupérerCode(toto As TextBox)


 
quand j'appelle cette methode de la fenetre principale en lui mettant un TextBox en paramète, il me jette... J'ai essayé avec d'autres types d'objets et ça fait pareil.

Reply

Marsh Posté le 12-05-2003 à 16:00:09    

Ce ne serait pas beaucoup plus simple si tu passait le contenu de la TextBox plutôt que la TextBox elle-même?  Ou deux params au lieu d'un si vraiment t'as besoin d'un truc supplémentaire contenu dans le TextBox.  Si le paramètre passé à la fonction est bien une TextBox, je ne pense pas que le problème vienne de là.
 
Trappe précisément la ligne qui plante.  Si ça se trouve, tu interceptes les erreurs au niveau de ta fonction dans la form principale, et pas dans RécupérerCode.  Si un plantage survient dans RécupérerCode, on peut facilement croire que c'est l'appel lui-même qui est incorrect, alors qu'en fait c'est quelque part dans la fonction que ça foire.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 12-05-2003 à 16:18:19    

drasche a écrit :

Ce ne serait pas beaucoup plus simple si tu passait le contenu de la TextBox plutôt que la TextBox elle-même?  Ou deux params au lieu d'un si vraiment t'as besoin d'un truc supplémentaire contenu dans le TextBox.  Si le paramètre passé à la fonction est bien une TextBox, je ne pense pas que le problème vienne de là.
 
Trappe précisément la ligne qui plante.  Si ça se trouve, tu interceptes les erreurs au niveau de ta fonction dans la form principale, et pas dans RécupérerCode.  Si un plantage survient dans RécupérerCode, on peut facilement croire que c'est l'appel lui-même qui est incorrect, alors qu'en fait c'est quelque part dans la fonction que ça foire.


 
Bah nan, je veut changer la valeur du texte du textbox qui est dans la form qui appelle l'autre (tu me suis ?)
Je veux pas récuperer le texte, je veut le modifier une fois que l'utilisateur a trouvé le bon fournisseur dans la feuille d'avant.
 

Reply

Marsh Posté le 12-05-2003 à 16:29:16    

un autre exemple du même problème ...
J'ai ça dans un module  

Code :
  1. Public Function MettreZoneSDansListe(liste As ComboBox)
  2. liste.AddItem ("G01" )
  3. liste.AddItem ("G02" )
  4. liste.AddItem ("G03" )
  5. liste.AddItem ("G04" )
  6. End Function


 
et quand j'appelle  

Code :
  1. Private Sub Form_Load()
  2. MettreZoneSDansListe (CodeZoneStockage)
  3. End Sub

 
ou CodeZoneStockage est une combobox.
Il m'indique une erreur de conversion de type à cette ligne là (lors de l'appel)
[/cpp]

Reply

Marsh Posté le 12-05-2003 à 17:06:04    

Bon... je commence à capter un truc en VB là... [:russ]  C'est le problème des parenthèses quand on appelle une fonction.  Chuis jamais tombé dessus avant parce que je suis un fana du Call et j'en ai partout dans mon code.
 
Pour ton appel, t'as deux choix:

Code :
  1. MettreZoneSDansListe CodeZoneStockage


ou

Code :
  1. Call MettreZoneSDansListe(CodeZoneStockage)


 
Le code que tu m'as montré ne passe pas à la compile pour une raison obscure, c'est du joli (de la part de VB hein :D)  Oui, ça passe pas à la compile chez moi parce que je suis un fana du Control-F5, alors que toi, tu fais sûrement F5.  Je me trompe? :D
 
Donc ton autre problème doit être pareil.
 
Je l'ai toujours dit: des Call partout! :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 13-05-2003 à 09:03:05    

Yep!!
ça marche maintenant, c'étais ces putains de parenthèses  :fou: ! il suffit de les virer !
 
Merci beaucoup, je vais peut-être pouvoir faire du VB propre maintenant ! :sol:  
A+  :hello:  

Reply

Sujets relatifs:

Leave a Replay

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