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 :

Gestion d'erreur dans les modules [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 64
    Points : 94
    Points
    94
    Par défaut Gestion d'erreur dans les modules
    Bonjour a Tous
    Ma question a trait a la gestion des erreurs dans les modules VBA d'Access 2010 (en SP2).
    J'ai converti (presque) toutes mes bases de donnees d'Access 97 en Access 2010, sans probleme sauf 1 : la gestion des erreurs avec la fonction "On Error".

    Auparavant, le "On Error Resume next / On Error goto xxxx" fonctionnait bien. je gerais mes "erreurs utilisateurs" sans probleme.

    Par contre avec Acc2010, plus moyen de gerer : on dirait que le gestionnaire d'erreurs n'est plus actif et chaque erreur provoque immediatement le popup fatidique d'Access avec le code et les boutons Fin ou Debogage.

    J'ai donc créé une nouvelle base de donnees avec TRES peu de choses :
    1 table avec 1 champ (qui ne sert a rien)
    1 module avec une procedure sub :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub main
    dim x as integer
    x = 1
    on error resume next
    x = x / 0
    on error goto 0
    x = x / 0
    end sub
    On ne peut pas faire plus simple (ou plus bete) !!!

    et quand j'execute mon module, ca fait plouf ... mais pas au meme endroit ...

    Je me suis apercu qu'en executant le code dans un compte Administrateur, seule la deuxieme division par zero provoque le message gere par Access2010, ce qui est parfaitement normal.

    Par contre, quand j'execute la meme sequence dans un compte utilisateur ordinaire, quoi que je fasse, le "on error resume next" n'est pas "vu" par Access et la premiere division par zero affiche le popup du gestionnaire d'erreur. D'ou, Incomprehension !!!

    J'ai bien evidemment verifie les droits Windows7 des utilisateurs sur la base (>Controle total a tout le monde<). le malaise ne semble pas etre de ce cote la, ... quoique ?

    Et je n'arrive pas a trouver une option d'Access qui differencie le comportement entre un user Admin et un user Lambda.
    Mais c'est la que git le loup !!
    Soit dans Access, soit dans un droit d'executer le gestionnaire d'erreur pour un user Lambda, soit une option d'execution qui m'echappe, soit ... ?

    Access est en SP2, installe depuis le compte d'administrateur, accessible par tout le monde.
    Les macros sont activees, les dossiers ou sont les Bdd sont declares fiables, dans une partition separee de la partition systeme (et des users/docs&settings/... de Win7).

    Merci d'un coup de pouce.
    MaPomme13

  2. #2
    Membre régulier
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 64
    Points : 94
    Points
    94
    Par défaut
    Fin du post

    le meme comportement se produisant aussi sous VBA Excel,
    j'ai fini par trouver :
    Choix des modes "Recuperation d'erreur" de l'onglet "General" de la boite de dialogue "Options" dans le menu "Outils" de VBA (il faut avoir acces a cette fenetre, ce n'est ni dans la fenetre feuille de calcul Excel, ni base de donnees Access).

    Pour laisser le gestionnaire d'erreur traiter completement les erreurs, il faut choisir "Arret sur les erreurs non gerees" et le trap des erreurs est bien fait.

    Par contre, pourquoi est-ce que le comportement par defaut n'est pas le meme entre un admin et un user (parce que je n'ai franchement pas souvenir d'avoir touche a ce parametre de fonctionnement a l'installation de Office2010), la, mystere et pate a choux !!!

    Donc je clos le post.

    Caramel13

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

Discussions similaires

  1. [2.x] [Symfony2] Gestion des erreurs dans les Contrôleurs imbriqués.
    Par dindinvi dans le forum Symfony
    Réponses: 3
    Dernier message: 13/08/2014, 00h57
  2. [AC-2003] Gestion des erreurs dans les sous-programmes
    Par azertix dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/10/2010, 11h13
  3. Gestion des erreurs dans les pages JSP
    Par elewandowski dans le forum Struts 2
    Réponses: 3
    Dernier message: 04/12/2007, 21h18
  4. Gestion d'erreur dans les procédure
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/01/2006, 12h02
  5. [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

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