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 :

Gestion des erreurs


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 46
    Points
    46
    Par défaut Gestion des erreurs
    Bonjour, j'ai une question concernant la gestion des erreurs:
    Je parcours un recordset, et pour chaque enreg je fais un insert.
    Si l'insert se passe mal, j'aimerais tracé l'erreur, mais continué à parcourir ma boucle pour inserer les autres enreg...
    Est ce faisable dans une même fonction?
    Car si je fais un On Erro GoTo, je vais obligatoirement sortir de ma boucle...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 46
    Points
    46
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        While Not oRst.EOF
            requeteValues = "'" & oRst.Fields(0).Value & "'"
            For Compteur = 1 To 22
                requeteValues = requeteValues & ", " & "'" & oRst.Fields(Compteur).Value & "'"
            Next Compteur
            'MsgBox "Value " & requeteValues
            requeteInsert = "INSERT INTO MATABLE VALUES(" & requeteValues & ")"
            oDbWrite.Execute requeteInsert, dbFailOnError
            'Si erreur, insert l'id dans une table de log...
            oRst.MoveNext
        Wend
    Voici le code...
    Suis obligé d'appeler une fonction pour l'insert, dans laquelle je pourais faire mon On Error GoTo ou y a t il une autre solution?

  3. #3
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    il tout à fait possible de le faire mais en utilisant On error resume next et mettre un teste sur la description de l'erreur pour la tracer à la fin du code.

  4. #4
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    tu pourrais aussi explorer du coté de:
    GoSub...Return, instruction
    et
    On...GoSub, On...GoTo, instructions
    dans l'aide d'access.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par Petogaz
    salut,

    il tout à fait possible de le faire mais en utilisant On error resume next et mettre un teste sur la description de l'erreur pour la tracer à la fin du code.
    Le problème est que je peux avoir plusieurs erreurs...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 46
    Points
    46
    Par défaut
    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
     
    Public maFunction()
    ...
    ...
        While Not oRst.EOF 
            requeteValues = "'" & oRst.Fields(0).Value & "'" 
            For Compteur = 1 To 22 
                requeteValues = requeteValues & ", " & "'" & oRst.Fields(Compteur).Value & "'" 
            Next Compteur 
            'MsgBox "Value " & requeteValues 
            requeteInsert = "INSERT INTO MATABLE VALUES(" & requeteValues & ")" 
            oDbWrite.Execute requeteInsert, dbFailOnError 
            'Si erreur, insert l'id dans une table de log... 
            On Error GoTo trace_erreur
            oRst.MoveNext 
        Wend
    Exit Function
     
    trace_erreur
    'mon insert dans ma table qui va bien...
    return
    End Function
    Est ce que ceci fonctionnerait?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 134
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par keita
    tu pourrais aussi explorer du coté de:
    GoSub...Return, instruction
    et
    On...GoSub, On...GoTo, instructions
    dans l'aide d'access.
    Le pb est qu'après un On Error, il faut obligatoirement un GoTo ou un Resume...

  8. #8
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Tu as dans la FAQ une fonction à mettre en place qui permet de tracer les erreurs, de remonter son numéro et sa description.

  9. #9
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Voici le code...
    Suis obligé d'appeler une fonction pour l'insert, dans laquelle je pourais faire mon On Error GoTo ou y a t il une autre solution?
    Pourtant c'est la plus belle des méthodes.

    Ainsi ta fonction retourne vrai si succès ou une erreur prévue (genre doublons) mais que tu veux passer outre. Et false si une erreur non prévue (genre impossible de contacter la base dorsale)

    Et dans ton programme principale, tu boucles sur ton recordset, appelle la fonction et si le résultat vaut true, tu continues à boucler, sinon, tu sors soit en levant une erreur (err.raise) soit avec un Exit For par exemple (si une boucle for)


Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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