Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1470 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°709469
ludolitali​ano
Posté le 27-04-2004 à 11:06:21  profilanswer
 

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
mood
Publicité
Posté le 27-04-2004 à 11:06:21  profilanswer
 

n°709482
drasche
Posté le 27-04-2004 à 11:13:32  profilanswer
 

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)
n°709533
ludolitali​ano
Posté le 27-04-2004 à 11:44:59  profilanswer
 

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.

n°709537
drasche
Posté le 27-04-2004 à 11:47:06  profilanswer
 

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)
n°709665
ludolitali​ano
Posté le 27-04-2004 à 13:52:03  profilanswer
 

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.

n°709701
alterisanz
Posté le 27-04-2004 à 14:28:09  profilanswer
 

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à !

n°709716
drasche
Posté le 27-04-2004 à 14:33:29  profilanswer
 

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)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
Liaison formulaire et sous formulaire en VB appliqué à Access[php] pb de variables dans une boucle avec un formulaire
[VBA] Continuous Forms, récupérer la valeur d'un champ[c] Passer l'adresse d'un tableau a 2 dim en parametre [OK]
[javascript] Script de validation de formulaire [bug]Comment récupérer la valeur d'un <SELECT> ??
formulaire mailHTML - Comment pouvoir bouger un formulaire(une zone de texte)
Trouver la valeur supérieur arrondie a n'importe quel chiffre ?Formulaire dynamique
Plus de sujets relatifs à : [VB6] Comment faire passer une valeur d'un formulaire à un autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR