Fonction et passage de parametre

Résolu
manhino Messages postés 63 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 7 août 2008 - 1 févr. 2008 à 10:44
manhino Messages postés 63 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 7 août 2008 - 1 févr. 2008 à 21:11
bonjour,

J'ai u petit souci concernant une fonction.
Lorsque je veut passer en parametre deux arguments il me renvoye l'erreur suivante:
Erreur de compilation
Attendu :=
Ma fonction est la suivante
Module1.enregistrementBase (apt , et)
Cette appel se fait d'un autre module.

Merci d'avance

-------
Manhino
-------

11 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 févr. 2008 à 11:20
Bonjour

Le message signifie que "apt" et/ou "et" ne sont pas des String.

Pour éviter ce pb, change ta déclaration :
Public Sub enregistrementBase(apt As String, et As String)

devient :
Public Sub enregistrementBase(Byval apt As String,byval et As String)

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
3
manhino Messages postés 63 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 7 août 2008
1 févr. 2008 à 11:33
Merci bien pour cette reponse cela fonctionne maintenant.
La solution est la suivante
module2
Module1.enregistrementBase apt, et
module1
Public Sub enregistrementBase(ByVal apt As String, ByVal et As String)

-------
Manhino
-------
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
1 févr. 2008 à 18:42
Tu ne sembles pas avoir compris !!!

Cet appel (ton premier) :
Module1.enregistrementBase (apt , et)
Convenait précisément pour une fonction (ce qui n'est pas ton cas)

et celui qui a été corrigé :
Module1.enregistrementBase apt, et
correspond bien à l'appel d'une sous-routine (car ta Sub n'est pas une fonction ...)
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 févr. 2008 à 10:52
Salut,

Si ta fonction dans ton module1 est bien déclarée en Public, alors tu fais :

enregistrementBase (apt , et)

A+
Exploreur

 Linux a un noyau, Windows un pépin
0

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

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 févr. 2008 à 10:55
Bonjour

Je penses que ce serait plutot à cause des parenthèses :
Module1.enregistrementBase  apt , et

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
1 févr. 2008 à 10:57
Bonjour

Ou sinon utilises l'instruction Call :
Call Module1.enregistrementBase (apt , et)

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
manhino Messages postés 63 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 7 août 2008
1 févr. 2008 à 11:01
la fonction est déclarer dans un autre module donc je suis obligé de mettre le nom du module devant.
Pour se qui est des parenthese j'ai essaiyer et il me renvoir l'erreure suivante :
Type de document Byref incompatible

Lorsque que je met qu'un seul argument la fonction marche correctement.
je ne comprend pas

Merci

-------
Manhino
-------
0
manhino Messages postés 63 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 7 août 2008
1 févr. 2008 à 11:03
La fonction que j'appel est la suivante est se situe dans un autre module

Public Sub enregistrementBase(apt As String, et As String)

Dim SQL As String
Dim SQL1 As String

SQL = "INSERT INTO locaux (Appartement, Etage) VALUES ('" & apt & "','" & et & "');"

DoCmd.RunSQL SQL

End Sub

-------
Manhino
-------
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
1 févr. 2008 à 14:07
Et où est donc la "fonction", dans tout çà ?
Je ne vois qu'une procédure .... !!!!!
0
manhino Messages postés 63 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 7 août 2008
1 févr. 2008 à 15:37
biensur je n'allai pas tout mettre la fonction le probleme existai sur le passage de parametre et non pas sur ce que réalise cette fonction.

-------
Manhino
-------
0
manhino Messages postés 63 Date d'inscription jeudi 30 mars 2006 Statut Membre Dernière intervention 7 août 2008
1 févr. 2008 à 21:11
dsl,

Autant pour moi je ne suis pas vraiment éxpérimenter en se qui concerne le visual basic, mes base de C++ m'ont fait aller vers cette déclaration.
Merci pour l'explication de se petit point
Bonsoir

---------
Manhino
---------
0
Rejoignez-nous