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 :

Traitement d'erreur dans VBA


Sujet :

VBA Access

  1. #1
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 222
    Points : 125
    Points
    125
    Par défaut Traitement d'erreur dans VBA
    Je veux sur l'évènement AfterUpdate d'un de mes champs, qu'il soit validé pour le bon format d'heure... j'aimerais connaitre des procedures pour faire la validation a partir du code.. les try catch existent-ils dans VBA???

    Merci pour votre temps.

  2. #2
    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
    salut
    charleshbo a ecrit:
    ... j'aimerais connaitre des procedures pour faire la validation a partir du code.. les try catch existent-ils dans VBA???
    try catch c'est pour VB.Net pour l'instant
    on 'espere avoir tout pour l'office 12 et donc pour la prochaine version d'access.
    pour ton pb essaies quelque chose dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    On error goto MonErreur
     
    ' tratement ici
     
     
      exit sub
    MonErreur:
    msgbox "Une erreur inattendue s'est produite."
    Cependant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On error goto MonErreur
    Juste apres tes declarations de variables et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    exit sub
    MonErreur:
    msgbox "Une erreur inattendue s'est produite."
    Juste avant le End sub de ta procedure
    va voir ici, c'est plus complet
    http://access.developpez.com/faq/?pa...GestionErreurs
    @+

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Lorsque tu parles de champs, tu parles de contrôles d'un formulaire? Ce que je suppose puisque tu parles d'évènement afterupdate, et que tu travailles VBA pour Excel, ce que tu ne mentionnes pas.

    Personnellement, j'intercepterais plutôt l'évènement BeforeUpdate ou l'évènement Exit du contrôle. En effet, ces évènements disposent d'un paramètre Cancel que l'on peut modifier pour invalider la sortie du contrôle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Nom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        If Not IsDate(nom.Value) Then
            MsgBox "Saisie erronée"
            Cancel = True
        End If
    End Sub
    Une saisie autre qu'une date affiche le message d'erreur et repositionne le pointeur dans le contrôle Nom.

    Si tu travailles dans Access, tu peux déjà dégrossir pas mal le boulot avec les masques de saisie... Attention, avec Access, Cancel est de type integer et non MSForms.ReturnBoolean, mais cela ne change rien à la façon de manipuler la variable.

    Ok?

    Pierre Fauconnier

  4. #4
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 222
    Points : 125
    Points
    125
    Par défaut
    pour préciser je travaille VBA dans Access...
    C'est plutot pour le traitement de l'HEURE et non de la date que j'aurais besoin d'une fonction ou quelque chose...

    J'avais déjà un masque de saisie, mais mon utilisateur n'aimait pas a avoir a rentrer un 0 si l'heure est 07:52:00

    C'est pourquoi je voulais indiquer un format a entrer pour l'utilisateur et ensuite vérifier sur un évènement (exit semble bon) si le format de l'heure est correct..

    merci..

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Si ton utilisateur doit entrer une heure et non une durée, et donc une valeur <=23:59:59, tu peux tester ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Nom.Value>0 And Nom.Value < 1 then ...
    puisque les heures sont exprimées en partie décimale de journées...

    Il faut adapter avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Nom.Value>=0 And Nom.Value < 1 then ...
    si l'utilisateur peut encoder minuit...

    Ok?

    Pierre Fauconnier

  6. #6
    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 peuxdonner ton format?
    @+

  7. #7
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 222
    Points : 125
    Points
    125
    Par défaut
    Citation Envoyé par Pierre Fauconnier
    Si ton utilisateur doit entrer une heure et non une durée, et donc une valeur <=23:59:59, tu peux tester ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Nom.Value>0 And Nom.Value < 1 then ...
    puisque les heures sont exprimées en partie décimale de journées...

    Il faut adapter avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Nom.Value>=0 And Nom.Value < 1 then ...
    si l'utilisateur peut encoder minuit...

    Ok?

    Pierre Fauconnier
    Oui mais s'il n'utilise pas le bon format, et qu'il entre un chiffre entre 0 et 1 justement...

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Il me semble que l'important n'est pas tant le format de saisie que la validité de la saisie. Access peut très bien afficher dans un certain format des données saisies avec un masque de saisie différent du format d'affichage.

    Personnellement, je ne connais pas avec Access de remède marchant à tous les coups pour éviter de devoir saisir le 0 non significatif tout en ayant un format de saisie...

    Mais peut-être ce masque de saisie existe-t'il?

    Avis aux connaisseurs.

    Pierre Fauconnier

  9. #9
    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
    essai ça dans une zone texte; dans la proprieté format:
    00\:00\:00
    Ne pas taper les deux points : lors de la saisie.

    EDIT
    1/Dans la propriété Format: "heure complet"
    2/dans donnees-->masque de saisie:
    09\:09\:09;0
    @+

  10. #10
    Provisoirement toléré Avatar de charleshbo
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 222
    Points : 125
    Points
    125
    Par défaut
    merci

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

Discussions similaires

  1. [Camel] Traitement des erreurs dans une route
    Par Dr_GreenThumb dans le forum Java EE
    Réponses: 3
    Dernier message: 18/03/2014, 12h09
  2. erreur dans VBA à l'ouverture d'un formulaire
    Par sylvmand dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/08/2011, 16h03
  3. Traitement d'erreur dans une macro
    Par Potzo dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 14/07/2010, 08h21
  4. Traitement d'erreur dans une Action
    Par Snyper dans le forum Struts 1
    Réponses: 5
    Dernier message: 03/05/2009, 22h51
  5. Gestion d'erreur dans vba
    Par tribaleur dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/02/2008, 08h19

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