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

IHM Discussion :

Etat - Erreur 2501 [AC-2003]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 353
    Points : 181
    Points
    181
    Par défaut Etat - Erreur 2501
    Bonjour,

    Dans ma base de données, j'ai crée des états avec sur l'évennement " Sur aucune donnée", le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Report_NoData(Cancel As Integer)
     
            MsgBox "Il n'y a pas d'écritures à éditer.     "
            Cancel = True
     
    End Sub
    Lorsque je double-clique sur le nom de l'état cela fonctionne.

    Dans mon menu "Accueil", j'ai placé sur un bouton le code :
    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
       ...
        ' Confirmation du transfert des écritures de brouillon en archives
        Dim strMsg As String, strTitre As String, strRep As String
        strMsg = "Le résultat est valide SI et SEULEMENT SI les écritures sont TOUTES en <<archives>> ou TOUTES en <<brouillard>>.    " & vbCrLf & "" & vbCrLf & "Voulez-vous continuer OUI / NON ?"
        strTitre = "Compte de résultat"
        strRep = MsgBox(strMsg, vbQuestion + vbYesNo, strTitre)
     
        If strRep = vbNo Then
                MsgBox "Vous avez choisi NON, le compte de résultat ne sera pas édité!!     ", vbInformation
                Exit Sub
            Else
                If Me.C_brouillard = 0 Then                                                     ' Comptes en atchives
                        If Me.CR_type = 0 Then                                                  ' Tableau complet
                                DoCmd.OpenReport "Compte_result_comp_archives", acViewPreview   ' Compte résultat complet archives
                            Else                                                                ' Tableau simplifié
                                DoCmd.OpenReport "Compte_result_simple_archives", acViewPreview ' Compte résultat simplifié archives
                        End If
                    Else                                                                        ' Comptes en brouillard
                        If Me.CR_type = 0 Then                                                  ' Tableau complet
                                DoCmd.OpenReport "Compte_result_comp_brou", acViewPreview       ' Compte résultat complet brouillard
                            Else                                                                ' Tableau simplifié
                                DoCmd.OpenReport "Compte_result_simple_brou", acViewPreview     ' Compte résultat simplifié brouillard
                        End If
                End If
        End If
     
    Exit sub
    Lorsque je lance l'état, j'ai bien le message précisant l'absence de donnée mais ensuite j'ai une erreur :
    "Erreur d'exécution '2501' :

    L'action OpenReport a été annulée."


    Le débogage me met la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "Compte_result_comp_archives", acViewPreview   ' Compte résultat complet archives
    en jaune.

    Alors que dans d'autres BD, ce type de procédure fonctionne!

    Où est mon erreur?

    Jean-Pierre

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    Tu n'as pas fait d'erreur c'est le fonctionnement habituel de Access.

    Il faut attraper l'erreur et la traiter. Ça ressemble à cela

    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
    On error Gotpo Err_Proc
     
    DoCmd.OpenReport "Compte_result_comp_archives", acViewPreview   
     
    Exit_Proc:
     
    exit sub
     
    Err_Proc:
     
    select case err.number
       case 2501 
            'OK rapport vide, ne rien faire
       case else
            msgbox "Erreur : " & err.number & ", " & err.description
    end select
     
    resume exit_proc
    A+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 353
    Points : 181
    Points
    181
    Par défaut
    Bonsoir marot_r,

    Merci pour la réponse. Sur ton conseil, j'ai traité le problème comme suit :
    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
    Private Sub Commande67_Click()
         ....
     
         On Error GoTo Err_Commande67_Click:
     
        If strRep = vbNo Then
                MsgBox "Vous avez choisi NON, le compte de résultat ne sera pas édité!!     ", vbInformation
                Exit Sub
            Else
                If Me.C_brouillard = 0 Then                                                     ' Comptes en archives
                        If Me.CR_type = 0 Then                                                  ' Tableau complet
                                DoCmd.OpenReport "Compte_result_comp_archives", acViewPreview   ' Compte résultat complet archives
                            Else                                                                ' Tableau simplifié
                                DoCmd.OpenReport "Compte_result_simple_archives", acViewPreview ' Compte résultat simplifié archives
                        End If
                    Else                                                                        ' Comptes en brouillard
                        If Me.CR_type = 0 Then                                                  ' Tableau complet
                                DoCmd.OpenReport "Compte_result_comp_brou", acViewPreview       ' Compte résultat complet brouillard
                            Else                                                                ' Tableau simplifié
                                DoCmd.OpenReport "Compte_result_simple_brou", acViewPreview     ' Compte résultat simplifié brouillard
                        End If
                End If
     
        End If
     
    Exit_Commande67_Click:
        Exit Sub
     
    Err_Commande67_Click:
        Resume Exit_Commande67_Click
     
    End sub
    Jean-Pierre

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 366
    Points : 23 834
    Points
    23 834
    Par défaut
    Afin de faciliter la maintenance, je te recommade de remplacer Commande67 par quelque chose de plus significatif comme btnCalculerCompteResultat qui rend le code plus lisible.

    A+

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour jeanpierre78, René,

    Dans le même ordre d'idée que René, j'ajouterais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Err_Commande67_Click::
        Select Case Err.Number
            Case 2501 'Ouverture annulée
            Resume Exit_Commande67_Click
        Case Else 'Une erreur inconue
            MsgBox  Err.Number & " " & Err.Description
        End Select
    ....
    Comme René avait indiqué dans son post. Si jamais il se produisait une autre erreur que la 2501, avec ton code tu ne la verrais pas, ce qui n'est pas souhaitable.

    Bonne journée

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    353
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 353
    Points : 181
    Points
    181
    Par défaut
    Bonsoir,

    J'ai appliqué la méthôde de Robert1957 qui présnte l'avantage de ne pas masquer les autres erreurs.

    Jean-Pierre

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

Discussions similaires

  1. erreur 2501 : l'action openreport à été annulée ????
    Par electrosat03 dans le forum Access
    Réponses: 4
    Dernier message: 25/08/2015, 20h23
  2. Réponses: 8
    Dernier message: 19/09/2014, 18h23
  3. [Etat]erreur d'exécution dans état
    Par modus57 dans le forum IHM
    Réponses: 8
    Dernier message: 12/04/2007, 22h35
  4. Erreur 2501
    Par CHATon dans le forum Access
    Réponses: 4
    Dernier message: 08/01/2007, 17h03
  5. [Etat] #Erreur dans certains états...
    Par Julien.alkaza dans le forum IHM
    Réponses: 4
    Dernier message: 28/12/2005, 12h17

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