IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

message erreur sur appel module


Sujet :

Access

  1. #1
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut message erreur sur appel module
    Bonjour à tous,

    Lorsque j'appel ce module sur le clic d'un bouton de commande, j'ai ce message d'erreur :
    Erreur de compilation : Variable ou procédure attendue
    Avez-vous une idée sur le problème que je rencontre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Public Function LISTAGE_ARTICLES()
     
    Dim db As Database
    Dim Rst As Recordset
    Dim SqlQuery As String
    Dim SqlUpdate As String
    Dim SqlDelete As String
    Set db = CurrentDb
                SqlQuery = ("SELECT Tbl_TempLstTbl.Nom FROM Tbl_TempLstTbl " & _
                    "WHERE (((Tbl_TempLstTbl.Nom) Like 'TARIF*'));")
                Set Rst = db.OpenRecordset(SqlQuery)
     
                SqlDelete = ("Delete * from Tbl_TempArt;")
                CurrentDb.Execute (SqlDelete), dbFailOnError
     
        Do While Not Rst.EOF
     
        SqlUpdate = "INSERT INTO Tbl_TempArt ( codeart ) SELECT " & Rst.Fields("Nom").Value & ".[CODE PRODUIT] " & _
            "FROM " & Rst.Fields("Nom").Value & " LEFT JOIN Tbl_TempArt ON " & Rst.Fields("Nom").Value & ".[CODE PRODUIT] " & _
            "= Tbl_TempArt.codeart WHERE (((Tbl_TempArt.codeart) Is Null));"
    'Debug.Print SqlUpdate
        CurrentDb.Execute (SqlUpdate), dbFailOnError
        Rst.MoveNext
        Loop
     
    MsgBox "Mise à jour terminée."
     
    Rst.Close
    db.Close
    Set Rst = Nothing
    Set db = Nothing
     
     
    End Function
    Merci pour vos réponses,

    Daniel

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    Et le débogueur ne s'arrête sur aucune ligne quand tu demandes la compilation ?

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 316
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    Et la valeur de retour de la fonction?

    A+

  4. #4
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Bonjour caféine,

    Le débogueur s'arrête sur le clic du bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande57_Click()
    LISTAGE_ARTICLES
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re

    Pourquoi y'a t il des parenthèses ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SqlQuery = ("SELECT Tbl_TempLstTbl.Nom FROM Tbl_TempLstTbl " & _
                    "WHERE (((Tbl_TempLstTbl.Nom) Like 'TARIF*'));")
                Set Rst = db.OpenRecordset(SqlQuery)
     
                SqlDelete = ("Delete * from Tbl_TempArt;")
    Vu le message il intérpréte cela comme des fonctions

    Starec

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    T'as essayé de compiler tous les modules ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Re

    ListageArticle est une fonction, donc à la fin tu dois avoir as + un type, hors dans ton cas ce n'est pas une fonction. Remplace Function par Sub.

    Starec

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    starec testes ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function bemol()
    bemol = 10
    MsgBox ("hello")
    End Function
     
    Function teste() As Integer
    teste = bemol
    bemol
    End Function
    ben oui le typage est facultatif et on peut faire le call d'une fonction
    vba a parfois des aspects curieux

  9. #9
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    merci à tous pour vos réponses,

    Tout d'abord j'ai compilé et je n'ai pas d'erreur, ensuite pour répondre à starec, j'ai remplacé sans succès function par sub.

    Je ne comprend pas ce qui se passe.

    Je souhaite faire appel à ce module à partir de bouton de différents formulaires c'est pourquoi j'ai mis ce code dans ce module, mais peut-être ne faut-il pas faire comme cela.

    Daniel

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    essaye de préfixer l'appel

    call nommodule.lissagemachin

  11. #11
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    Bon j'ai trouvé,

    Tout simplement, j'ai nom du Module et de la fonction était identique.

    Voilà pourquoi !!!!!

    C'est bon à savoir pour le futur

    Merci à tous pour vos réponses.

    Daniel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Message erreur sur variant [PDF -> TEXT]
    Par bidochon dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 04/01/2008, 18h37
  2. Message d'erreur sur ouverture module de BDD
    Par zakiabdess dans le forum Bases de données
    Réponses: 8
    Dernier message: 12/02/2007, 21h50
  3. Réponses: 3
    Dernier message: 08/11/2006, 17h56
  4. Message erreur sur Mise à jour formulaire
    Par Daniel MOREAU dans le forum Access
    Réponses: 6
    Dernier message: 06/10/2006, 08h52
  5. message d'erreur sur test module
    Par Daniel MOREAU dans le forum Access
    Réponses: 5
    Dernier message: 23/11/2005, 20h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo