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

VBA Access Discussion :

[VBA][Access 2003] Probleme de portée de variables


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 25
    Points : 23
    Points
    23
    Par défaut [VBA][Access 2003] Probleme de portée de variables
    Bonjour, Suite à la discussion :
    http://www.developpez.net/forums/d20...tee-variables/
    Présentation de mon code:
    Pour un petite application de comptabilité sous Access 2003 ou j'ai besoin de transformer les données d'une table pour les réinjecter dans une autre table. Dans ma procédure principale, j'appelle deux procédure, la procédure recupParamFAE qui recherche les données dans plusieurs tables et formulaires. Puis la procédure Insert FAE qui avec les paramètres récupéré avec la procédure recupParamFAE insert un enregistrement dans une table avec une requete SQL "INSERT"

    Ma question:
    Pourquoi quand j'exécute mon code le message d'erreur suivant apparait-il au niveau de la déclaration de ma procédure "InsertFAE" ?:
    Erreur de compilation:
    Déclaration existante dans la portée en cours
    procédure Insert FAE (déclaration):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub InsertFAE(ByVal fCodeSociete As String, fCodeJournal As String, fDateArrete As Date, fCompte As String, fRubrique As String, fTxTVA As Double, fNumCompteTVA As String, fNumCompteCollectif As String, ByVal fLibelleEcriture As String, fHT As Double, fTVA As Double, fTTC As Double, fNumPieceInterne As String, fRubrique As String)
    ...
    Les principaux paramètre de cette procedure sont initialiser grâce à la procédure recupParamFAE dont voici le code de déclaration:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub recupParamFAE(ByVal txTVA As Double, ByRef codeSociete As String, ByRef societeDateArrete As Date, ByRef FAEcodeJournal As String, ByRef numCompteCollectif As String, ByRef numCompteTVA As String, ByRef FAElibelleEcriture As String, ByRef FAEnumPieceInterne As String)
    ...
    J'utilise ces deux procédures dans ma procédure principale de cette manière:

    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
    35
    36
    37
     
    ...
    Dim CodeScte As String
        Dim DateArrete As Date
        Dim CodeJournal As String
        Dim CompteCollectif As String
        Dim CompteTVA As String
        Dim LibelleEcriture As String
        Dim NumPieceInterne As String
     
        'variables des calculs FAE ou PCA
        Dim txTVA As Double
        Dim MtTTC As Double
        Dim MtHT As Double
        Dim MtTVA As Double
     
        DoCmd.SetWarnings (False)
     
        'Calcul FAE et insertion dans la TABLE T_FAESAGE
        'suprresion des anciennes données de la talbe T_FAESAGE
        DoCmd.OpenQuery "R_suppr_FAESAGE", acViewNormal, acEdit
     
        rsFAE.MoveFirst
        If rsFAE.EOF Then
            MsgBox ("Il n'y a pas de FAE")
        Else
            While Not rsFAE.EOF
                txTVA = rsFAE![TauxTVA]
                MtTTC = rsFAE![SommeLigne]
                MtTVA = MtTTC * (txTVA / 100)
                MtHT = MtTTC - MtTVA
                Call recupParamFAE(rsFAE![TauxTVA], CodeScte, DateArrete, CodeJournal, CompteCollectif, CompteTVA, LibelleEcriture, NumPieceInterne)
                Call InsertFAE(CodeScte, CodeJournal, DateArrete, rsFAE![CompteCG], rsFAE![RubriqueAnalytique], rsFAE![TauxTVA], CompteTVA, CompteCollectif, LibelleEcriture, MtHT, MtTVA, MtTTC, NumPieceInterne, rsFAE![RubriqueAnalytique])
                rsFAE.MoveNext
            Wend
        End If
    ...
    J'ai tenté de renommer les paramètres formels de la procédure InsertFAE mais apparemment ce n'est pas la bonne solution.



    Je remercie d'avance l'aide que vous pourrez m'apporter.

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour et bienvenu sur le forum.

    Sur quelle ligne se produit l'erreur?
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Sur quelle ligne se produit l'erreur?
    Oui pardon, j'étais en pleine réédition de mon poste.
    L'erreur se porte sur la ligne de déclaration de ma procédure InsertFAE.

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Je ne serai pas surpris que cela vienne d'un des paramètres que tu aurais également déclaré en local de la procédure InsertFAE


    Dans le style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub InsertFAE(ByVal MaVar As Integer)
        Dim MaVar As Integer
        ...
     
    End Sub
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    re,

    J'aurais aimé que ce soit cela (vu que c'était indiqué dans l'aide ):

    Voici ma procédure InsertFAE en entier (on ne moque pas de ma grand requete ):
    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
     
    Private Sub InsertFAE(ByVal fCodeSociete As String, fCodeJournal As String, fDateArrete As Date, fCompte As String, fRubrique As String, fTxTVA As Double, fNumCompteTVA As String, fNumCompteCollectif As String, ByVal fLibelleEcriture As String, fHT As Double, fTVA As Double, fTTC As Double, fNumPieceInterne As String, fRubrique As String)
     
     
    Dim LrqtInsertFAEd As String 'première partie de la requete SQL
    Dim LrqtInsertFAEf As String 'deuxième partie de la requete SQL
     
    'première partie de la requete
    LrqtInsertFAEd = "INSERT INTO T_FAESAGE(CodeScte,CodeJournal,DatePiece,"
    LrqtInsertFAEd = LrqtInsertFAEd + "CompteCG,RubriqueAnalytique,TauxTVA,CmpteTVA,CmpteCollectif,LibelleEcriture,"
    LrqtInsertFAEd = LrqtInsertFAEd + "MontantProduit,MontantTVA,MontantCollectif,NumPieceInterne,SAProduit)"
    LrqtInsertFAEd = LrqtInsertFAEd + " VALUES ('" + fCodeSociete + "',"
    LrqtInsertFAEd = LrqtInsertFAEd + "'" + fCodeJournal + "',"
    LrqtInsertFAEd = LrqtInsertFAEd + "#" + StrConv(fDateArrete, 1) + "#,"
    LrqtInsertFAEd = LrqtInsertFAEd + "'" + fCompte + "',"
    LrqtInsertFAEd = LrqtInsertFAEd + "'" + fRubrique + "',"
    LrqtInsertFAEd = LrqtInsertFAEd + ConvDecVirgulePoint(fTxTVA) + ","
    'deuxième partie de la requete
    LrqtInsertFAEf = "'" + fNumCompteTVA + "',"
    LrqtInsertFAEf = LrqtInsertFAEf + "'" + fNumCompteCollectif + "',"
    LrqtInsertFAEf = LrqtInsertFAEf + "'" + fLlibelleEcriture + "',"
    LrqtInsertFAEf = LrqtInsertFAEf + ConvDecVirgulePoint(fHT) + ","
    LrqtInsertFAEf = LrqtInsertFAEf + ConvDecVirgulePoint(fTVA) + ","
    LrqtInsertFAEf = LrqtInsertFAEf + ConvDecVirgulePoint(fTTC) + ","
    LrqtInsertFAEf = LrqtInsertFAEf + "'" + fNumPieceInterne + "',"
    LrqtInsertFAEf = LrqtInsertFAEf + "'" + fRubrique
    LrqtInsertFAEf = LrqtInsertFAEf + "');"
     
    DoCmd.RunSQL (LrqtInsertFAEd + LrqtInsertFAEf) 'éxécution de la requete
    End Sub

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bjr,

    il y a deux paramètres fRubrique

  7. #7
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Il y a des jours où l'on se sent vraiment bête... Le fatigue surement.
    Merci à vous deux

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

Discussions similaires

  1. probleme avec la commande execute sous vba access 2003
    Par williamkwr dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/07/2009, 20h05
  2. [Access 2003] Probleme avec une association reflexive
    Par softstar dans le forum Langage SQL
    Réponses: 7
    Dernier message: 17/08/2006, 13h43
  3. [Access 2003]Probleme type de donnée sur requete DELETE
    Par pottiez dans le forum Langage SQL
    Réponses: 12
    Dernier message: 09/08/2006, 09h39
  4. Réponses: 12
    Dernier message: 10/06/2006, 19h07
  5. Aide pour cde vba Access (2003)
    Par alpha88 dans le forum Access
    Réponses: 1
    Dernier message: 05/04/2006, 11h14

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