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 :

On error Access [AC-2010]


Sujet :

VBA Access

  1. #21
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 751
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Désolé plus d'idée.

    Peux-tu préciser quelle version d'Access tu utilises ?

    A+
    **************************
    ACCESS 2010

  2. #22
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 751
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Bonsoir,

    as-tu pensé à faire un Debug.Print csql5 pour voir ce que cette variable renvoie ? Le contrôle Modifiable64 est peut-être vide.
    ***************************************
    Oui c'est justement le motif de ma demande; éviter le message d'Access si utilisateur ne renseigne pas le contrôle par "on error"
    Merci

  3. #23
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonsoir,
    Oui c'est justement le motif de ma demande; éviter le message d'Access si utilisateur ne renseigne pas le contrôle par "on error"
    Il suffit de prévenir l'utilisateur avant de faire l'insertion. C'est en général comme cela qu'on procède avec une IHM, on fait les contrôles avant d'insérer les données et si tout est bon, on valide.
    Comme loufab te l'a dit:
    Citation Envoyé par loufab
    Tu ne pourras de toute façon pas forcer le moteur à les transgresser.
    Par exemple, au début de ta procédure (avant de rendre les contrôles invisibles) tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        If Me.Modifiable64 = "" Then
            MsgBox "Saisie Nom Opérateur Obligatoire !!!",  vbOKOnly + vbCritical,  "Cloture Insertions !!! "
            Me.Modifiable64.SetFocus
           Exit sub
       End IF
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  4. #24
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    11 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 11 986
    Points : 24 531
    Points
    24 531
    Par défaut
    Bonsoir,

    Je complèterais par ce test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.Modifiable64 = "" or isnull(me.modifiable64) Then
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #25
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.Modifiable64 & ""  =  ""  Then
    ' ou aussi
    If Nz(Me.Modifiable64,"") = ""  Then
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #26
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 751
    Points : 206
    Points
    206
    Par défaut réponse à tee_grandbois et loufab
    Merci pour vos réponses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    If Me.Modifiable64 = "" Then
            MsgBox "Saisie Nom Opérateur Obligatoire !!!",  vbOKOnly + vbCritical,  "Cloture Insertions !!! "
            Me.Modifiable64.SetFocus
           Exit sub
       End IF
    If Me.Modifiable64 = "" or isnull(me.modifiable64) Then
     
    if Me.Modifiable64 & ""  =  ""  Then
    ' ou aussi
    If Nz(Me.Modifiable64,"") = ""  Then
    Oui c'est que je compte faire si jamais je n'arrive pas à récupérer l'erreur d'Access, voilà un exemple de procédure que j'ai écrite sur laquelle la récupération de l'erreur d'Access pour en faire un message personnel fonctionne :
    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
    Private Sub Commande66_Click()
    Dim csql5 As String
    If IsNull(Me.Texte35) Then
      MsgBox ("Saisie N°Dossier Obligatoire !")
      Me.Texte35.SetFocus
      Exit Sub
    End If
    On Error GoTo Err
    DoCmd.RunCommand acCmdSaveRecord
    Me.RecordSource = Me.RecordSource
    Me.Sous_Formulaire_Insertions.Form.RecordSource = Me.Sous_Formulaire_Insertions.Form.RecordSource
    Texte35.Locked = True
    fin:
        Exit Sub
    Err:
        MsgBox "Saisie Incorecte !", _
        vbOKOnly + vbExclamation, _
                      "Saisie Insertions !!! "
        If Me.Texte6 <> "" Or Not IsNull(Me.Texte6) Then
          Me.Texte27.SetFocus
            Else
          Me.Texte6.SetFocus
        End If
        Resume fin
    End Sub
    C'est le cas ou un champ clé étrangère n'est pas renseigné: message d'Access sur l'erreur 3101 avec on error le MsgBox "Saisie Incorecte" s'affiche et pas le messge d'Access, sur mon problème le message d'Access continue à s'afficher puis s'affiche le message perso géré avec on error, c'est peut être parce que Modifiable64 n'est pas une clé je ne sais pas...
    Merci à vous deux pour votre aide et à tous les autres, je laisse le sujet ouvert si quelqu'un a la solution si il y a une solution...

  7. #27
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Oui c'est que je compte faire si jamais je n'arrive pas à récupérer l'erreur d'Access, voilà un exemple de procédure que j'ai écrite sur laquelle la récupération de l'erreur d'Access pour en faire un message personnel fonctionne :
    ce n'est pas la bonne méthode, je te conseille vivement de faire tes contrôles avant l'insertion, c'est une absurdité de vouloir "trapper" les erreurs système pour contrôler la saisie.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #28
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 751
    Points : 206
    Points
    206
    Par défaut
    c'est une absurdité de vouloir "trapper" les erreurs système pour contrôler la saisie.

    oui Chef
    Mais alors pourquoi on error ?
    Pour des erreurs d'un "plus haut niveau" ?
    Merci

  9. #29
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonjour
    Mais alors pourquoi on error ?
    Pour des erreurs d'un "plus haut niveau" ?
    Merci
    Oui, ce sont les erreurs système inattendues (celles que l'on n'a pas prévu dans les contrôles).
    Le fait d'attraper une erreur et de l'afficher permet d'alerter l'utilisateur et lui évite de se trouver devant la fenêtre de code avec l'instruction en erreur et permet au développeur de corriger le code en conséquence si besoin, mais cela ne devrait arriver que très rarement (sauf peut-être les conflits d'écritures en mode multi-utilisateurs mais même dans ce cas on peut prévoir des routines pour continuer le traitement)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #30
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 751
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Bonjour

    Oui, ce sont les erreurs système inattendues (celles que l'on n'a pas prévu dans les contrôles).
    Le fait d'attraper une erreur et de l'afficher permet d'alerter l'utilisateur et lui évite de se trouver devant la fenêtre de code avec l'instruction en erreur et permet au développeur de corriger le code en conséquence si besoin, mais cela ne devrait arriver que très rarement (sauf peut-être les conflits d'écritures en mode multi-utilisateurs mais même dans ce cas on peut prévoir des routines pour continuer le traitement)
    *****************************************************
    Merci pour ta réponse, j'en tiendrai compte j'ai finalement codé comme ca sur le focus du contrôle suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Commande62_GotFocus()
      If IsNull(Me.Modifiable64) Or Null Then
            MsgBox "Saisie Nom Opérateur Obligatoire !!!", vbOKOnly + vbCritical, "Cloture Insertions !!! "
            Me.Modifiable64.SetFocus
      End If
    End Sub
    Merci à toi
    A+

  11. #31
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    Bonsoir,
    Merci pour ta réponse, j'en tiendrai compte j'ai finalement codé comme ca sur le focus du contrôle suivant :
    méfie-toi, avec GotFocus l'affichage du message sera systématiquement provoqué et la sortie du champ sera impossible tant que l'utilisateur n'aura pas saisi quelque chose.
    Pour moi, le mieux c'est de faire les contrôles au moment de la validation (clic sur le bouton) mais c'est toi qui voit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsNull(Me.Modifiable64) Or Null Then
    Or Null est en trop
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #32
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 751
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Bonsoir,

    méfie-toi, avec GotFocus l'affichage du message sera systématiquement provoqué et la sortie du champ sera impossible tant que l'utilisateur n'aura pas saisi quelque chose.
    Pour moi, le mieux c'est de faire les contrôles au moment de la validation (clic sur le bouton) mais c'est toi qui voit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsNull(Me.Modifiable64) Or Null Then
    Or Null est en trop
    ***************************************************
    Merci de ta remarque je l'avais fait sur l'évènement "sur Clic" au départ mais je ne pouvais pas "revenir" sur le contrôle "Modifiable64"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If IsNull(Me.Modifiable64) Or Null Then
            MsgBox "Saisie Nom Opérateur Obligatoire !!!", vbOKOnly + vbCritical, "Cloture Insertions !!! "
            Me.Modifiable64.SetFocus
      End If
    C'est pour ça que je l'ai fait sur le focus de Commande62 (le contrôle qui suit Modifiable64).
    Si tu as une idée comment résoudre cet inconvénient, j'ai tout de même testé le programme avec ou sans données dans "Modifiable64" pas de problèmes le message ne s'affiche pas tout le temps.
    Oui en effet Or Null est en trop faute d'étourderie...
    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [IDE] C++ Builder 6 : Error 1657 - Link error : Access violation
    Par el_draken dans le forum C++Builder
    Réponses: 1
    Dernier message: 03/01/2011, 19h11
  2. Erreur Security error accessing url
    Par fab039 dans le forum Flex
    Réponses: 1
    Dernier message: 13/01/2010, 10h41
  3. security error accessing url -appel à un WebService
    Par fifiwarrior dans le forum Flex
    Réponses: 0
    Dernier message: 09/06/2008, 17h54
  4. [Flex 3] "security error accessing url"
    Par Jacques - 06 dans le forum MXML
    Réponses: 2
    Dernier message: 07/05/2008, 12h47
  5. PB query error ACCESS
    Par megapacman dans le forum Access
    Réponses: 2
    Dernier message: 26/06/2006, 12h11

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