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

Requêtes et SQL. Discussion :

try/catch sur requête SQL


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 44
    Par défaut try/catch sur requête SQL
    Bonjour,


    Je voudrais faire un Catch sur une requète SQL que si il y a une erreur alors plus tot que que basculer en code source indiquer simplement que ce n'est pas possible a l'utilisateur.

    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
            Try
                        'afficher la premire colonne sélectionnée
                        MsgBox Me.LB_List_Tel.Column(0)
     
                        'REQ_Modif = "UPDATE Téléphone_en_attente set Action = 'true' WHERE id = " & Me.LB_List_Tel.Column(0) & "; "
                        REQ_Modif = "UPDATE Téléphone_en_attente set Action = 1 WHERE id =" & Me.LB_List_Tel.Column(0)
     
     
     
                       'Supprime la confirmation d'enregistrement dans la BDD
                       DoCmd.SetWarnings off
     
            Catch ex As Exception
                         msgbox ("Action Impossible")
            End Try
    Mais sa ne fonctionne pas tout a fait comme le VB.Net.

    Pouvez vous m'aider s'il vous plait ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 678
    Par défaut
    Bonjour,

    le try catch sous VBA se fait avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    On Error Resume Next
    'instruction...
    If Err.Number>0 Then
    'code du catch
    End If
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Bonjour.

    Attention, on est TRÈS loin du try/catch en VBA.

    La solution de Jean-Philippe André fonctionne si et seulement si tu as une seule instruction juste avant l'erreur.
    Sinon, il ignore l'erreur et passe seulement à l'instruction suivante.
    L'idéal en VBA c'est d'avoir du code qui vérifie avant que tu vas avoir une erreur est évite ainsi d'exécuter l'instruction ou les instructions concernées.
    Il y a aussi une instruction erl ligne qui te donne la dernière ligne numérotée par rapport à où s'est produite une erreur. C'est très rudimentaire.

    Personnellement quand je sais que je vais devoir gérer une erreur je fais :

    un procédure ou une fonction spécifique pour isoler le code qui va produire une erreur.

    et j'utilise quelque chose comme :

    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
        on error goto Err_NomProcedure
     
        'ici mon code
     
    Exit_NomProcedure:
        exit sub
     
    Err_NomProcedure:
       select case err.number
          case IciLeNumeroQueJAttend
            'Faire quelque chose de spécifique pour cette erreur :
            ' Resume Next 'Passe à l'instruction suivante  
            ' Resume UneADresse 'Reprend le code à une adresse particulière
     
          case else
            msgbox("Erreur " & err.number & " - " & err.description, vbexclamation)
     
      end select
     
      resume exit_NomProcedure
    end sub
    pour neutraliser la gestion d'erreur

    C'est la valeur par défaut et Access s'arrête sur la ligne concerné et affiche le message à l'utilisateur.

    Note que sur les formulaires tu as un événement "Sur Erreur" mais que son fonctionnement est un peu différent.

    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.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Un dernier point, les erreur sont renvoyées au niveau du dessus jusqu'au premier niveau qui implémente un On Error Goto.

    Donc, il se peut que tu attrapes une erreurs à un niveau mais qu'elles se soit produite ailleurs.

    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.

Discussions similaires

  1. [PHP 5.3] try - throw - catch
    Par ETVigan dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2010, 19h43
  2. [Débutant] Instruction try and catch
    Par Asmlibero dans le forum MATLAB
    Réponses: 2
    Dernier message: 19/01/2009, 10h37
  3. probleme avec try et catch
    Par salsero1 dans le forum Struts 1
    Réponses: 2
    Dernier message: 15/11/2007, 08h02
  4. UTILISATION DE TRY et CATCH
    Par demcoul dans le forum JBuilder
    Réponses: 1
    Dernier message: 15/04/2006, 15h01
  5. Pb : Exception / déroutements / try, throw, catch
    Par Bapt_from_Reims dans le forum C++
    Réponses: 5
    Dernier message: 18/03/2005, 17h55

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