Pb passage de paramètre form1 et form2

paloxicide Messages postés 225 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 20 juin 2006 - 14 sept. 2005 à 09:30
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 14 sept. 2005 à 13:37
g une procédure dans un form1

lorsque je clique sur un bouton du form1, j'ouvre un form2. Sur ce meme form2, je donne des valeurs a mes textbox, combobox etc



Et lorsque je valide mon form2, je fais appel a ma procedure du form1
pour récupérer le valeurs. Mais ca ne marche pas car il ne peut pas le
faire

L'erreur est type d'argument ByRef incompatible



Voici ma procédure du form1

Public Sub materiel(val1 As Integer, val2 As Integer, val3 As Integer)

MsgBox ("matos : " & matos)

matos = val1 & "|" & val2 & "|" & val3

End Sub



et voici mon appel dans le form2

valeur = admCommandeAjout.materiel(val1, val2, val3)



Sinon si vous avez une meilleure soluce, je prends

Merci

8 réponses

cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
14 sept. 2005 à 09:40
salut
une idée comme ça en passant mais il doit y avoir plus simple:
enregistrer matos dans un fichier temporaire
ouvrir ce fichier en chargeant form2
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
14 sept. 2005 à 09:49
Dans Form2, val1, val2 et val3 ne sont sans doute pas des Integer !! Vérifie celà !!


Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
14 sept. 2005 à 09:53
Met tes paramètres en Byval tant que possible, c'est juste un conseil.



Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)

Une question se pose sur le forum, pas en privé


NH
0
paloxicide Messages postés 225 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 20 juin 2006 1
14 sept. 2005 à 10:01
j'ai rajouté byval mais l'erreur est la suivante

fonction ou variable attendue



qu'est ce donc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
paloxicide Messages postés 225 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 20 juin 2006 1
14 sept. 2005 à 10:03
j'ai testé c bien des integer qui sont dans la procedure
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
14 sept. 2005 à 10:04
Peux-tu nous montrer comment tu as "rajouté" ByVal stp ?

Et aussi de quel type sont les variables val1,val2 et val3 ?




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
14 sept. 2005 à 10:11
Pff ... je viens de voir un truc pas beau ....



valeur = admCommandeAjout.materiel(val1, val2, val3)





materiel serait donc une Fonction ???



Ah non, materiel est une procedure (Private Sub).

Donc forcément, çà ne peut pas fonctionner.

Soit materiel est une procédure et ne renvoie rien.

Soit materiel doit renvoyer quelque chose, et alors là, il faut que tu la définisses comme telle.






Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
14 sept. 2005 à 13:37
salut,

euh... je suis pas certain d'avoir bien compris le problème....

2Forms, 2Cmds


' #################
' ## Form1 ##
' #################

Option Explicit
'
Dim v1%, v2%, v3%
'
'
Private Sub Cmd_ToForm2_Click()
v1 = 111
v2 = 222
v3 = 333
Debug.Print "Form1 avant l'envoie : " & v1; v2; v3
Form2.pv1 = v1
Form2.pv2 = v2
Form2.pv3 = v3
Form2.Show
End Sub
'
'
Public Sub RecupereVsFromForm2(ByVal f1%, ByVal f2%, ByVal f3%)
v1 = f1
v2 = f2
v3 = f3
Debug.Print "Form1 après réception de Form2: " & v1; v2; v3
End Sub

' #################
' ## Form2 ##
' #################

Option Explicit
'
Public pv1%, pv2%, pv3%
'
'
Private Sub Form_Load()
'ini on suppose l'attrivution commme tu veux dans les combos, etc...
Debug.Print "Form2 à la réception de Form1 : " & pv1; pv2; pv3
End Sub
'
'
Private Sub Cmd_MajAndClose_Click()
'ici on suppose un traitement manuel, genre
'pv2=val(Text1.Text), etc.....
pv1 = pv1 * 4
pv2 = pv2 * 4
pv3 = pv3 * 4
Debug.Print "Form2 avant l'envoie : " & pv1; pv2; pv3
Call Form1.RecupereVsFromForm2(pv1, pv2, pv3)
Unload Me
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>

PCPT
0
Rejoignez-nous