Pbs d'appel de fonction en VB6 [Résolu]

Signaler
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
-
Bjs, voilà pour le travail je doit créer une fenêtre VB de sélection de fonction, qui doit automatiquement lord de la sélection d'une fonction remplir les trois ComboBox c.à.d sélectionner dans celle-ci le bonne valeur ... voilà je vous présente mon debut de script mon appel de fonction (QUI NE MARCHE PAS, voilà pourquoi je post ce message), et ma fonction dans son module....Si vous pouviez m'aider de quelque façon que ce soit, je suis a l'écoute ...

Appel de fonction : (Incorrect me sort  Erreur de compilation:
                                                           Variable ou procédure attendue, et non un module)   
Private Sub CboFct_Change()
'Affiche dans le textbox la ligne correspondante aux caractères saisi par _
  l'utilisateur
    Dim recherche As String
    Dim longeur As Integer
    Dim k As Integer
    Dim para1 As Variant
    Dim para2 As Variant
    Dim para3 As Variant
    Dim DescFct As String
        recherche = CboFct.Text
        longeur = Len(recherche)
        For k = 0 To CboFct.ListCount
'compare les caractère entrée par l'utilisateur avec le contenue de la _
  combobox, qu'importe qu'il écrive en maj ou min
            If LCase(Mid(CboFct.List(k), 1, longeur)) = LCase(recherche) Then
                TxtFctM.Text = CboFct.List(k)
                DescFctSel = TxtFctM.Text
              ' Status = DescFct(DescFctSel, "", "", "")
                CboPara(0).Text = DescrFct(para1)
                CboPara(1).Text = DescFct(para2)
                CboPara(2).Text = DescFct(para3)
            End If
        Next k
End Sub, ----
(Coloration syntaxique automatique par Kenji)

Contenue du module c.à/d ma fonction :
;Public Function DescFct(DescFctSel As String, para1 As Variant, para2 As _
   Variant, para3 As Variant)
'*****description parametre 1
    Requete = "SELECT Fonction.Fct_Description, Fonction.Fct_Par_1,  " & _
              "       Parametre.Par_Description " & _
              "FROM   Fonction, Parametre " & _
              "WHERE  ((Fonction.Fct_Description= '" & DescFct & _
                "' ) AND (Parametre.Par_Id = Fonction.Fct_Par_1)) "
'resultat interpretation requete
    Set Resultat = GLB_Jeton_Access.OpenResultset(Requete, rdOpenKeyset)
    With Resultat
        If (Not .EOF) Then
            para1 = (!Par_Description)
        End If
        .Close
    End With
    
'*****description parametre 2
    Requete = "SELECT Fonction.Fct_Description, Fonction.Fct_Par_2,  " & _
              "       Parametre.Par_Description " & _
              "FROM   Fonction, Parametre " & _
              "WHERE  ((Fonction.Fct_Description= '" & DescFct & _
                "' ) AND (Parametre.Par_Id = Fonction.Fct_Par_2)) "
'resultat interpretation requete
    Set Resultat = GLB_Jeton_Access.OpenResultset(Requete, rdOpenKeyset)
    With Resultat
        If (Not .EOF) Then
            para2 = (!Par_Description)
        End If
        .Close
    End With
    
'*****description parametre 3
    Requete = "SELECT Fonction.Fct_Description, Fonction.Fct_Par_3,  " & _
              "       Parametre.Par_Description " & _
              "FROM   Fonction, Parametre " & _
              "WHERE  ((Fonction.Fct_Description= '" & DescFct & _
                "' ) AND (Parametre.Par_Id = Fonction.Fct_Par_3)) "
'resultat interpretation requete
    Set Resultat = GLB_Jeton_Access.OpenResultset(Requete, rdOpenKeyset)
    With Resultat
        If (Not .EOF) Then
            para3 = (!Par_Description)
        End If
        .Close
    End With
 End Function, ----
(Coloration syntaxique automatique par Kenji)

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe

18 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
C'est quoi exactement qui ne fonctionne pas? quelle ligne?:

NOTE: Ta fonction DescFctpossède 4 parametres. lors d'un appel tu DOITS lui passer 4 paramètres (sauf si tu en déclare comme Optional) il te manque donc à chaque fois 3 parametres (CboPara(1).Text = DescFct(para2, x, x, x))
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Re,

Public Sub DescFct(DescFctSel As String, Optional para1 As Variant, Optional para2 As _
   Variant, Optional para3 As Variant)

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Re,
Et si on essayait de faire une vrai Fonction.

Un truc du style

'LAPPEL
DescFctSel = TxtFctM.Text
   CboPara(0).Text = DescFct(DescFctSel, "1")
   CboPara(1).Text = DescFct(DescFctSel, "2")
   CboPara(2).Text = DescFct(DescFctSel, "3")

Public Function DescFct(DescFctSel As String, NumParam As String) As String

Dim Requete As String
   Requete = "SELECT Parametre.Par_Description " & _
             "FROM   Fonction, Parametre " & _
             "WHERE  ((Fonction.Fct_Description= '" & DescFct & _
               "' ) AND (Parametre.Par_Id = Fonction.Fct_Par_" & NumParam & ")) "
               
'resultat interpretation requete
   Set Resultat = GLB_Jeton_Access.OpenResultset(Requete, rdOpenKeyset)
   With Resultat
       If (Not .EOF) Then
           DescFct = (!Par_Description)
       End If
       .Close
   End With
   
End Function , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Salut Jrivet >> T'es arrivé quoi sur ton avatar......

Vb_PtitCat >> En complément de Jrivet, tu fais une fonction qui ne te renvois rien, pas utile dans ce cas là, un sub suffit....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Lorsque je lance mon appli, et que je selectionne une fonction, il me sors l'erreur que j'ai précisé au dessus, le pb se trouve a la ligne :
 CboPara(0).Text = DescFct(DescFctSel, para1, x, x)

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Un sub suffit, je la declare donc
public sub DescFct(...)   ???

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Relis bien le post de Jrivet, il te donne la solution...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Mais en fait j'ai les renvoies, des valeurs para1, 2 et 3 vers mes combobox CboPara(0), CboParz(1), ...

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Re,
> [auteurdetail.aspx?ID=17710 Exploreur]: Il ne te plait pas cet avatar???
>[auteurdetail.aspx?ID=1075109 VB_PtitCat] : Effectivement si tu relis bien tu as ce qu'il te fait pour résoudre ton problème.
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Non mais même avec les 4 paramètres il me fout la même erreur ... 
Erreur de compilation:
Variable ou procédure attendue, et non un module 
Est ce tout simplement parce que j'ai pla cé ma fonction dans un module et non à la fin de mon script ?? 

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Re,

Jrivet >> Si...si...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

J'ai fait les modif, mais pour appeler cette fonction
un call descfct ne suffit pas il me dit encore et tjs :
Erreur de compilation:
Sub, Function ou Property attendue ...

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Nut !!
Erreur de compilation:
Tableau attendu

CboPara(0).Text = DescFct(DescFctSel, "1")

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
ON va pas y arriver....

Tu as bien un groupe de controle ComboBoc appelée CboPara????

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Non mais c'est pas les combo qui vise en disant qu'il attend un tableau mais c'est le nom de ma fct que j'ai mis en gras just au dessus.
j'ai bien un grp de combo qui s'app CboPara oui, tkt je suis pas si nul que ca, c'est juste que normalement je travail pas avec VB la j'aide un collège

MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Je ne dit pas que tu es nul. Mais si tu as bien un groupe de controle, alors cela devrait passer désolé. cette erreur n'a rien a voir avec la fonction...

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

C'est bon je pense que mon prb est régler, au pire je reposerais un p'tit post !!
Mrc de votre aide
MerZi ... Zi ... Zi ... PtitCat  
P.S:DSL pour l'orthographe
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Un problème dans la saisie du nom de la fonction, peut-être ?
Je vois que la fonction est déclarée comme s'appelant DescFct(), mais tu appelles DescrFct() !! Avec un 'r' en plus ?
Est-ce une faurte de frappe qd tu as recopier ton code sur le forum ou bien ?