[VB6] Comment faire passer une valeur d'un formulaire à un autre

Comment faire passer une valeur d'un formulaire à un autre [VB6] - VB/VBA/VBS - Programmation

Marsh Posté le 27-04-2004 à 11:06:21    

Bonjour,
J'ignore comment communiquer un paramètre d'un formulaire à un autre.
Jusqu'ici j'utilise la syntaxe :  

Code :
  1. frmNomDuFormulaire.Show


pour ouvrir un formulaire.
VB6 ne permet pas la syntaxe :  

Code :
  1. Private Sub Form_Load(CodeSql As String)


 
Quelqu'un sait-il comment procéder pour ouvrir un formulaire frmB à partir d'un autre formulaire frmA et de communiquer une ou plusieurs valeurs de frmA à frmB ? Merci !


Message édité par ludolitaliano le 27-04-2004 à 11:07:03
Reply

Marsh Posté le 27-04-2004 à 11:06:21   

Reply

Marsh Posté le 27-04-2004 à 11:13:32    

je suppose que frmNomDuFormulaire est le nom du formulaire dans ton projet? C'est une très mauvaise habitude que de l'utiliser directement. Fais plutôt un Dim variable as frmNomDuFormulaire et utilise la.
 
Ensuite, non, tu ne peux pas modifier une définition de réponse à un évènement. Si tu veux passer un paramètre, crée plutôt une fonction qui sera appelée avant ou après le Load (selon ton choix et tes besoins). Le Load intervient juste après le chargement des composants visuels.


---------------
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 27-04-2004 à 11:44:59    

drasche a écrit :

je suppose que frmNomDuFormulaire est le nom du formulaire dans ton projet? C'est une très mauvaise habitude que de l'utiliser directement. Fais plutôt un Dim variable as frmNomDuFormulaire et utilise la.
 
Ensuite, non, tu ne peux pas modifier une définition de réponse à un évènement. Si tu veux passer un paramètre, crée plutôt une fonction qui sera appelée avant ou après le Load (selon ton choix et tes besoins). Le Load intervient juste après le chargement des composants visuels.


Merci drasche.
Je ne comprends pas, j'ai défini une variable Cnx, en variable globale :

Code :
  1. Public Cnx As ADODB.Connection

et je peux l'utiliser dans différents formulaires; j'ai fait de même avec CodeSql :

Code :
  1. Public CodeSql As String

mais cela ne fonctionne pas i.e. je définis une valeur à CodeSql dans un formulaire et dans un autre formulaire CodeSql vaut "".
Si vraiment je n'y arrive pas je ferais comme tu m'as indiqué, par une fonction.

Reply

Marsh Posté le 27-04-2004 à 11:47:06    

les variables globales sont une plaie. Mieux vaut faire un passage de référence, au moins tu vois ta variable circuler et tu as un vrai contrôle sur ce qu'elle fait ou ne fait pas ;)


---------------
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 27-04-2004 à 13:52:03    

ludolitaliano a écrit :

Bonjour,
J'ignore comment communiquer un paramètre d'un formulaire à un autre.
Jusqu'ici j'utilise la syntaxe :  

Code :
  1. frmNomDuFormulaire.Show


pour ouvrir un formulaire.
VB6 ne permet pas la syntaxe :  

Code :
  1. Private Sub Form_Load(CodeSql As String)


 
Quelqu'un sait-il comment procéder pour ouvrir un formulaire frmB à partir d'un autre formulaire frmA et de communiquer une ou plusieurs valeurs de frmA à frmB ? Merci !


Okay ! Merci beaucoup. Je vais écrire une fonction.

Reply

Marsh Posté le 27-04-2004 à 14:28:09    

Ouaip cette solution n'est pas vraiment un passage de paramètre.
Si tu veux passer un ou plusieurs params tu fait :
 
dim param as string
param = "salut;aurevoir"
DoCmd.OpenForm "FACTURE_Enregistree", acNormal, , , , , param
 
Ensuite dans la fenetre que tu ouvre et ds l'evt Form_Open()
Tu fais :
 
dim recup as variant
 
recup = Me.OpenArgs
recup = Split(";", param)
 
'affiche le premier param
msgbox param(0)
 
'affiche le second param
msgbox param(1)
 
etc...
 
Voilà !

Reply

Marsh Posté le 27-04-2004 à 14:33:29    

euh t'es gentil on fait du VB6, pas de l'Access :o
 
ya pas vraiment de rapport là :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

Sujets relatifs:

Leave a Replay

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