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

IHM Discussion :

Modifier un message access (pas d'erreur générée)


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut Modifier un message access (pas d'erreur générée)
    Bonjour,

    Je voudrais modifier un message access peu compréhensible pour l'utilisateur (mais à priori, pas de génération d'erreur access).

    J'ai un formulaire dont les données sont issues d'une requete.

    Un champs dans le formulaire peut être modifié.

    Si sa valeur ne correspond pas à une des valeurs de la table source, Access fait apparaître le message et n'enregistre pas la modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le moteur de la BD ne peut pas trouver d'enregistrement dans la table "matable" avec le champs "champs" correspondant à la clé.
    Je voudrais ne pas le faire apparaître car pas clair ou au moins le modifier. Mais comme il ne semble pas y avoir de génération d'erreur, je ne vois pas comment faire.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 136
    Points : 169
    Points
    169
    Par défaut
    Bonjour,

    Dans ta gestion d'erreur, place une msgbox qui affiche le numéro de l'erreur. Donc (je crois) :
    D'après google, ce serait l'erreur 3101 (à confirmer).

    Et ensuite, toujours dans ta gestion d'erreur, tu interceptes ce numéro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Exit_Commande1_Click:
        Exit Sub
     
    Err_Commande1_Click:
        If Err.Num = 3101 Then 
            MsgBox "Le message que tu souhaites"
        Else
            MsgBox Err.Description
        End if
        Resume Exit_Commande1_Click
     
    End Sub
    Cordialement,

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut
    Merci pour l'aide.

    Le souci, c'est que ça ne génère pas d'erreur à priori.

    Dans la sub Form_Error, j'avais placé mais cette sub n'est pas activée.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 136
    Points : 169
    Points
    169
    Par défaut
    ... alors à quel moment est-ce que le message d'erreur de ton premier post apparaît ? D'où vient-il..?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut
    Heu si, mon msgbox err.number dans Form.error m'indique bien quelque chose : 0 ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 136
    Points : 169
    Points
    169
    Par défaut
    Alors il n'y a pas d'erreur, donc inutile de changer le message d'erreur

    Plus sérieusement, je viens de comprendre que tu utilises l'évènement Error du form... que je n'ai jamais utilisé (je place plutôt "On Error" sur chacune de mes procédures susceptibles de planter). Il me semble que Form_error est moins "performant" que "On error" (à confirmer, je dis p-e une bêtise...).
    Donc je ne peux pas t'aider, il faudrait que qqu d'autre prenne la relève .

    Juste au cas où tu veux tester/t'en inspirer, je gère les erreurs comme ceci :

    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
    Private Sub Commande2_Click()
    On Error GoTo Err_Commande2_Click
     
    '
    '
    'ton traitement
    '
    '
    '
     
    Exit_Commande2_Click:
        Exit Sub
     
    Err_Commande2_Click:
        MsgBox Err.Description
        Resume Exit_Commande2_Click
     
    End Sub

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut
    Merci, je vais tester. Pour l'instant, je tourne en rond...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut
    Ta gestion d'erreur, je l'ai mise dans la procédure Form_BeforeUpdate (je veux controler ce qui est écrit dans le champs.

    Quand je mets une valeur qui ne corrrespond pas à un enregistrement de la table source, ton code ne détecte pas d'errreur.
    Par contre, ça active Form_Error mais avec un err.number=0

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 136
    Points : 169
    Points
    169
    Par défaut
    Tu peux poster ton code ? Au niveau de Form_Error et Before_Update ?
    Et la table source qui est impliquée ?

    Je vais essayer de voir ça cet après-midi.

    Cordialement,
    Beub'

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut
    J'ai créé un formulaire dont les données sources sont issues d'une requête :



    Dans le champs "disposition" de mon formulaire, si je mets une valeur non contenue dans la table et que je veux changer d'enregistrement avec le bouton de déplacement de formulaire, le message Access apparaît :


    Si je rajoute cette sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Error(DataErr As Integer, Response As Integer)
    MsgBox Err.Number
    End Sub
    la msgbox me renvoie "0" (puis après, message Access précédent.)

    J'ai supprimé la sub Form_BeforeUpdate pour tester.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut
    J'ai changé de méthode et ça marche, je teste directement avec beforeupdate du champs :

    [code]Private Sub disposition_BeforeUpdate(Cancel As Integer)
    Dim nbre As Integer
    Dim disp As String
    disp = Me.disposition.Text
    nbre = DCount("code", "dispositions_SDAGEs", "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     = '" & disp & "'")
    If nbre = 0 Then
     message = MsgBox("blabla erreur", vbExclamation)
     Me.Undo
    End If
    End Sub
    Merci à Beub' pour l'aide.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 136
    Points : 169
    Points
    169
    Par défaut
    Cool J'aurais pas eu le temps de regarder avant lundi finalement ^^'

    Bonne continuation, bon we !

Discussions similaires

  1. Modifier le message d'erreur d'access pour les doublons
    Par ragus77 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 22/06/2013, 11h50
  2. Réponses: 7
    Dernier message: 14/08/2007, 11h17
  3. [VBA] modifier 1 message d'erreur
    Par tomas dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/04/2007, 14h53
  4. Réponses: 5
    Dernier message: 21/07/2006, 11h21
  5. [MySQL] Modifier les messages d'erreur.
    Par vampiloup dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/03/2006, 10h37

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