Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Prise de tete sur passage de parametres

4 réponses
Avatar
groumph
Bonjour,

J'ai une fonction qui se trouve dans un module, les d=E9clarations sont
les suivantes :

Option Compare Database
Option Explicit
Public Function Att_Table(NomduFichier As String, NomDeLaTable As
String) As Boolean

J'ai un form avec un bouton appelant sur clic :

Private Sub Att_Table_Click()
Dim LaTable, LeFichier As String
LaTable =3D "AccArt" 'Access_Articles
LeFichier =3D fOpenFiles()
If MsgBox("Utiliser le fichier " & LeFichier & " pour cr=E9er la
table li=E9e ?", vbOKCancel) Then
Att_Table (LeFichier, LaTable)
End If
End Sub

Le pb est qu'il me balance une erreur de compil (=3D attendu) sur la
ligne
Att_Table (LeFichier, LaTable)
Je ne pige rien =E0 cette erreur d'autant que si j'enl=E8ve le second
param=E8tre, elle dispara=EEt !? Une id=E9e ?

Merci
Alain

4 réponses

Avatar
Eric
Bonjour,

Une piste ...

Telle qu'elle est définie, ta fonction Att_Table(..., ...) retourne une
valeur booléenne, donc vb te demande de l'affecter à une variable.
Une solution sans variable
Tu traites avec un If, du genre:
If Att_Table (LeFichier, LaTable) then
' ou encore If Att_Table (LeFichier, LaTable) = True
' traitement si vrai
else
' traitement si faux
end if

Soit ta fonction ne retourne pas de valeur alors transformes-la en
Procédure Sub en supprimant son typage du genre:
Public Sub Att_Table(NomduFichier As String, NomDeLaTable As String)

et tu l'appelles dans le code par:
Call Att_Table(LeFichier,LaTable)
ou encore :
Att_Table LeFichier,LaTable
mais bien que Call soit optionnel, question de lisibilité, certains
préfèrent le mettre.

Rem: Nommer ton bouton de la même manière que ta fonction/Sub est
risqué. Je le renommerai btnAtt_Table

Bonjour,

J'ai une fonction qui se trouve dans un module, les déclarations sont
les suivantes :

Option Compare Database
Option Explicit
Public Function Att_Table(NomduFichier As String, NomDeLaTable As
String) As Boolean

J'ai un form avec un bouton appelant sur clic :

Private Sub Att_Table_Click()
Dim LaTable, LeFichier As String
LaTable = "AccArt" 'Access_Articles
LeFichier = fOpenFiles()
If MsgBox("Utiliser le fichier " & LeFichier & " pour créer la
table liée ?", vbOKCancel) Then
Att_Table (LeFichier, LaTable)
End If
End Sub

Le pb est qu'il me balance une erreur de compil (= attendu) sur la
ligne
Att_Table (LeFichier, LaTable)
Je ne pige rien à cette erreur d'autant que si j'enlève le second
paramètre, elle disparaît !? Une idée ?

Merci
Alain



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
.../...

If MsgBox("Utiliser le fichier " & LeFichier & " pour créer la
table liée ?", vbOKCancel) Then


Que tu cliques sur Ok ou Annuler tu feras toujours le traitement.
Ne serait-ce pas :
If MsgBox("Utiliser le fichier " & LeFichier & " pour créer la
table liée ?", vbOKCancel)= vbOk Then


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
groumph
Merci Eric pour ces deux réponses bien intéressantes que je vais
tester d'ici peu.
Alain


If MsgBox("Utiliser le fichier " & LeFichier & " pour créer la
table liée ?", vbOKCancel) Then


Que tu cliques sur Ok ou Annuler tu feras toujours le traitement.
Ne serait-ce pas :
If MsgBox("Utiliser le fichier " & LeFichier & " pour créer la
table liée ?", vbOKCancel)= vbOk Then

A+
Eric



Avatar
MG
Si c'est une fonction il faut
xxx = Att_Table (LeFichier, LaTable)

Si vous transformez votre fonction en procédure, tout se passera bien
Public Sub Att_Table(NomduFichier As String, NomDeLaTable As


"groumph" a écrit dans le message de news:

Bonjour,

J'ai une fonction qui se trouve dans un module, les déclarations sont
les suivantes :

Option Compare Database
Option Explicit
Public Function Att_Table(NomduFichier As String, NomDeLaTable As
String) As Boolean

J'ai un form avec un bouton appelant sur clic :

SMTP Email AddressDim LaTable, LeFichier As String
LaTable = "AccArt" 'Access_Articles
LeFichier = fOpenFiles()
If MsgBox("Utiliser le fichier " & LeFichier & " pour créer la
table liée ?", vbOKCancel) Then
Att_Table (LeFichier, LaTable)
End If
End Sub

Le pb est qu'il me balance une erreur de compil (= attendu) sur la
ligne
Att_Table (LeFichier, LaTable)
Je ne pige rien à cette erreur d'autant que si j'enlève le second
paramètre, elle disparaît !? Une idée ?

Merci
Alain