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 :

Problème d'affichage d'un code VBA [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut Problème d'affichage d'un code VBA
    Bonsoir la communauté,

    je rencontre un problème sur un affichage d'un de mes codes VBA sur un formulaire.
    Mon code ne semble pas contenir d'erreur car je n'ai aucun message de la part du système,
    mais lorsque je vais sur mon formulaire rien ne se passe, il n'y a seulement un carré blanc.

    Code VBA module:
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    Option Compare Database
    Option Explicit
     
    'Zone de texte des chèques en attente d'encaissement
    Public Sub InfosChq(TypeAffich As Integer)
     
    Dim oDb As DAO.Database
    Dim oRst As DAO.Recordset
     
    Dim StrSynt As String ' variable résultat obtenu.
     
    Dim NbrChqSus As String   ' Nombre de chèque non encaissé.
    Dim MntChqSus As Currency ' Montant des chèques non encaissés.
     
    Dim NbrChqEmis As String   ' Nombre de chèque émis en attente.
    Dim MntChqEmis As Currency ' Montant des chèques émis en attente.
     
    Dim NbrChqSusSup As String   ' Nombre de chèque non encaissé supérieure à 6 mois.
    Dim MntChqSusSup As Currency ' Montant des chèque non encaissé supérieure à 6 mois.
     
    Dim NbrSus As String     ' Nombre d'opération en attente.
    Dim MntSus As Currency   ' Montant des opérations en attente.
     
        Set oDb = CurrentDb
     
        Set oRst = oDb.OpenRecordset("R_NbrChqSus", dbOpenSnapshot) 'Appel de la réquete
                NbrChqSus = oRst.Fields("NombreChqSuspens")
                MntChqSus = Nz(oRst.Fields("MontantChqSuspens"), 0)
     
        Set oRst = oDb.OpenRecordset("R_NbrChqEmis", dbOpenSnapshot)
                NbrChqEmis = oRst.Fields("NombreChqEmis")
                MntChqEmis = Nz(oRst.Fields("MontantChqEmis"), 0)
     
        Set oRst = oDb.OpenRecordset("R_NbrChqSusSup6M", dbOpenSnapshot)
                NbrChqSusSup = oRst.Fields("NombreChqSup6M")
                MntChqSusSup = Nz(oRst.Fields("NontantChqSup6M"), 0)
     
        Set oRst = oDb.OpenRecordset("R_NbrSus", dbOpenSnapshot)
                NbrSus = oRst.Fields("NombreSus")
                MntSus = Nz(oRst.Fields("MontantSus"), 0)
     
     
        If NbrSus = 0 And NbrChqSus = 0 Then
     
           StrSynt = "Aucune opération en attente" & vbCrLf _
                   & "Aucun chèque en attente d'encaissement actuellement."
     
            ElseIf NbrSus = 0 And NbrChqSus > 0 Then
     
            StrSynt = "Aucune opération en attente" & vbCrLf _
                    & NbrChqSus & "(" & Format(MntChqSus, "Currency") & ")  chèque" & IIf(NbrChqSus > 1, "s ", " ") & " en attente d'encaissement." & vbCrLf _
                    & NbrChqEmis & "(" & Format(MntChqEmis, "Currency") & ")  chèque" & IIf(NbrChqEmis > 1, "s ", " ") & vbCrLf _
                    & NbrChqSusSup & "(" & Format(MntChqSusSup, "Currency") & ")  chèque" & IIf(NbrChqSusSup > 1, "s ", "") & " datant de plus de 6 mois."
     
                ElseIf NbrSus > 0 And NbrChqSus = 0 Then
     
                StrSynt = NbrSus & "(" & Format(MntSus, "Currency") & ") opération" & IIf(NbrSus > 1, "s ", " ") & "en attente" & vbCrLf _
                        & "Aucun chèque en attente d'encaissement actuellement."
        End If
     
     
    'Comme Source de la Zone de Texte, mise en place d'un titre + le résultat de la boucle.
    Select Case TypeAffich
     
    Case Is = -1    ''TypeAffich :  -1 Pour Zone de texte
     
        Form_Menu.TxtChq.ControlSource = _
        "=" & """" & StrSynt & """"
    End Select
     
        'Fermetures des connexions
        oRst.Close
        oDb.Close
        Set oDb = Nothing
        Set oRst = Nothing
     
     
    End Sub
    Code VBA sur le formulaire :
    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
    Private Sub Form_Activate()
        MAJMenu
    End Sub
     
    Private Sub Form_open(Cancel As Integer)
        MAJMenu
    End Sub
     
    Sub MAJMenu()
     
     
     Call InfosChq(-1)
     
    'Nous mettons le Focus sur la Zone de Texte
    Me.TxtChq.SetFocus
     
    'Nous mettons le Curseur au début de la Zone de Texte
    Me.TxtChq.SelStart = 0
     
    End Sub
    La propriété de la zone de texte :
    Nom : prop.JPG
Affichages : 152
Taille : 46,0 Ko

    N'hesitez pas à m'expliquer si vous voyez des anomalies ou des redondances sur ce code, car je cherche depuis plus d'une heure.

    Je vous remercie d'avance pour votre aide.

    Bien cordialement,
    Benjamin.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    As-tu vérifié que le code était bien exécuté ?
    As-tu vérifié que le code s'éxécutait comme tu t'y attendais ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Bonsoir marot_r,

    mon impression, c'est que le VBA ne exécute pas mais quand je fais F5 pour l’exécuter il me demande de créer une macro aussi.

    Donc, comment savoir si elle s’exécute correctement ?

    Bien cordialement,
    Benjamin.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Si c'est du code dans un formulaire tu ne peux pas l'éxécuter sans que le formulaire soit "vivant" (ç.-à-d. ouvert pour utilisation).
    Et tu ne peux lancer le code qu'avec un événement ou un bouton.

    Il faut mettre un point d'arrêt et pour cela cliquer dans la marge en face de l'instruction qui t'intéresse.
    Ici je suggère Sub MAJMenu.
    Cela va afficher un gros point marron.
    Quand Access arrive à ce point d'arrêt, il va te proposer de passer en mode débug et tu pourras exécuter le code ligne à ligne en appuyant sur [F8].

    Une autre méthode consite à ajouter un msgbox dans le code. Si le message s'affiche c'est que le code s'éxécute au moins jusqu'à cette instruction :-).

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Ok merci pour les explication marrot-r,

    ce qui est surprenant c'est que le problème intervient dès le début.

    Nom : Capture erreur.JPG
Affichages : 135
Taille : 42,5 Ko

    Il m'indique une erreur de compilation mais je ne vois pas où par contre.

    Merci pour votre aide.

    Bien cordialement,
    Benjamin.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    As-tu déclenché la procédure via un événement ou un bouton ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    As-tu déclenché la procédure via un événement ou un bouton ?

    A+
    Salut marot_r,

    Je n'ai mis aucun événement ou bouton sur la zone de texte "TxtChq",
    cependant j'ai deux événements sur le formulaire "Menu" correspondant "sur activé" et "sur ouverture", comme indiqué dans le code VBA.

    Bien cordialement,
    Benjamin.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Alors, il semble y a avoir une erreur de syntaxe quelque part.

    Va dans le code en mode modification et ensuite le menu Débugage et demande "Compiler".

    Cela devrait donner une piste.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Alors, il semble y a avoir une erreur de syntaxe quelque part.

    Va dans le code en mode modification et ensuite le menu Débugage et demande "Compiler".

    Cela devrait donner une piste.

    A+
    Ok marot_r,

    par contre comment on fait pour passer en mode modification ensuite débugage, car quand je vais dans le code je n'ai que débogage.

    Merci pour votre aide.

    Bien cordialement,
    Benjamin.

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Une fois que tu accepte le débugage, Access bascule vers le code.

    Tu peux éxécuter ton code en mode pas à pas (en appuyant sur [F8]) ce qui devrait te permettre de voir où l'erreur se produit ou même le modifier directement.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Une fois que tu accepte le débugage, Access bascule vers le code.

    Tu peux éxécuter ton code en mode pas à pas (en appuyant sur [F8]) ce qui devrait te permettre de voir où l'erreur se produit ou même le modifier directement.

    A+
    Bonsoir marot_r,

    lorsque j'appuie sur F8 il n'y a rien qui se passe sur mon code, sauf un bruit de fond comme s'il y avait un problème.

    Bien cordialement,
    Benjamin.

  12. #12
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Bon je viens de trouver et voir le problème.

    Je me suis dit s'il n'y a pas d'erreur de codage, et qu'il annonce un texte vide c'est bizarre.
    De plus, le message erreur de compilation : Manque expression, m'a donné l'idée de revoir l'ensemble de mets ElseIf.
    On peut remarquer qu'il manque une condition, qui est si les deux sont supérieurs à zéro alors le texte est... d’où le texte vide car les deux conditions était supérieur à zéro.

    Désolé pour le dérangement, en tous cas, vous m'avait guidé pour résoudre ce problème.

    Bien cordialement,
    Benjamin.

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

Discussions similaires

  1. probléme d'affichage et execution code
    Par coye dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/04/2009, 23h19
  2. Problème lié au générateur de Code VBA
    Par tarbala dans le forum IHM
    Réponses: 1
    Dernier message: 23/11/2008, 04h40
  3. Problème de formule dans un code VBA
    Par Toison dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/01/2008, 11h20
  4. Problème d'affichage dans mon code
    Par naima2005 dans le forum Applets
    Réponses: 3
    Dernier message: 02/12/2007, 11h52
  5. [EasyPHP] Problème d'affichage avec mon code PHP
    Par LegioKilt dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 24/11/2007, 04h13

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