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 :

Gestion des messages d'erreur [AC-2007]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Points : 29
    Points
    29
    Par défaut Gestion des messages d'erreur
    Bonjour,

    Tout nouveau sur le forum et déjà avec une question.

    J'ai un petit formulaire pour faire une recherche par rapport à un nom que je tape.

    Voici le code du bouton RECHERCHER
    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
    Private Sub Commande4_Click()
    On Error GoTo Err_Commande4_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "NOUVEAU CLIENT"
     
        stLinkCriteria = "[NOM]=" & "'" & Me![NClient] & "'"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_Commande4_Click:
        Exit Sub
     
    Err_Commande4_Click:
        MsgBox Err.Description
        Resume Exit_Commande4_Click
     
    End Sub
    Ce que je n'arrive pas à faire, c'est de personnaliser les messages d'erreur.
    Que je tape rien ou un nom inexistant, il ouvre quand même le formulaire "NOUVEAU CLIENT" mais vierge. Je voudrais qu'il n'exécute pas le code si il n'y a rien ou que le nom n'existe pas et qu'il me mette un message genre "NOM INCONNU".

    Voilà je ne sais pas si j'ai été clair. Si quelqu'un pouvait m'aiguiller dans la démarche, merci.

    J'ai lu dans la FAQ la démarche pour personnaliser les messages d'erreur, mais je ne comprends pas bien comment l'appliquer dans mon code.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    C'est normal que tu n'ait pas de message d'erreur. Tu en aurais un si par exemple ton formulaire n'existait pas ou était mal orthographié.
    IL faut que tu lui indique ce qu'il doit prendre en compte par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim stDocName As String
        Dim stLinkCriteria As String
      stDocName = "NOUVEAU CLIENT"
           stLinkCriteria = "[NOM]=" & "'" & Me![NClient] & "'"
     If IsNull (Me.NClient) Then
    MsgBox "Vous devez écrire quelque chose"
    Else
    DoCmd.OpenForm stDocName, , , stLinkCriteria

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Bonjour Gayot,

    Merci pour ta réponse rapide

    Le code fonctionne à merveille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim stDocName As String
        Dim stLinkCriteria As String
      stDocName = "NOUVEAU CLIENT"
           stLinkCriteria = "[NOM]=" & "'" & Me![NClient] & "'"
     If IsNull (Me.NClient) Then
    MsgBox "Vous devez écrire quelque chose"
    Else
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    et j'ai bien compris tes explications, mais que dois je rajouter lorsque le client n'existe pas ? Parce que pour l'instant le code fonctionne lorsque je ne saisis rien.

    Merci encore.

  4. #4
    Invité
    Invité(e)
    Par défaut
    La c'est un peu plus compliqué.
    Une méthode parmi d'autres.
    Tu remplaces ta Zone de texte NClient par une zone de liste déroulante, basée sur ta table_Client.
    Tu mets dans les propriété de cette liste:
    Limiter à liste: Oui
    Et tu mets sur l'évènement "Absence dans liste" le Msg que tu désires...
    Comme cela, si tu saisis un code non présent il te donne ton message.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    J'ai fait comme tu as dit, j'ai remplacé la zone texte par une liste déroulante, le problème c'est que le code ne marche plus, il m'ouvre un formulaire vierge même quand je sélectionne un nom existant.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il doit y avoir une erreur dans les propriétés de ta liste déroulante.
    Sur quelles propriétés y a t'il des évènements?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Un petit fichier exemple:

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Je vais essayer d'être clair, j'ai un formulaire avec juste une zone de texte et un bouton "RECHERCHE". Je tape un nom dans la zone texte et je clique sur le bouton "RECHERCHE", il m'ouvre le formulaire correspondant au nom taper. Ce matin tu m'as aidé à résoudre le problème lorsque je ne tape rien, il y a un message d'erreur personnalisé qui apparait. Ensuite tu me dis de remplacer ma zone texte par une zone de liste, ce que j'ai fait, sauf que le code du bouton "RECHERCHE" ne fait plus son boulot, il m'ouvre un formulaire vierge quoi que je tape.

    Tu vois le problème ou pas maintenant ?

    Y a t'il une différence si j'utilise une zone de liste déroulante à la place de la zone de liste ?

    La procédure événementielle n'existe que sur le bouton "RECHERCHE" avec le code que j'ai mis ce matin.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Je n'avais pas tout compris. J'ai donc modifié le fichier exemple sur le message plus haut.
    Avec les zones de listes il faut faire référence à la colonne.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    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
    Private Sub Cmd_Recherche_Click()
    On Error GoTo Err
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "Frm_Test"
        stLinkCriteria = "[Nom]=" & "'" & Form_Frm_Recherche.Cbo_Nom.Column(0) & "'"
     
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    Exit_Cmd_Recherche_Click:
        Exit Sub
     
    Err:
        Application.Echo True
        MsgBox Err.Description
        Resume Exit_Cmd_Recherche_Click
    End Sub
    Merci de ton aide précieuse, j'ai presque résolu mon problème avec le code ci-dessus. J'ai mis un peu de temps avant de trouver qu'il fallait modifier chez moi le numéro de colonne dans le code (chez moi c'est 1 pour que cela marche). Malheureusement, un autre problème est venu se greffer et je ne sais pas si c'est du au fait que j'ai modifié le numéro de colonne. Je vais essayer de te l'expliquer.
    Lorsque le formulaire de recherche est ouvert, je sélectionne un nom dans ma liste et il m'ouvre le formulaire correspondant, dans ce formulaire, j'ai un numéro de client et son nom, jusque là tout est OK, mais lorsque je ferme et que je réouvre le formulaire de recherche il m'a remplacé le premier nom de ma liste par ce fameux numéro de client et ça je ne sais pas pourquoi, j'ai beau décortiqué le code, je ne vois pas où il a pu faire le changement. Est ce que tu penses que cela vient du numéro de la colonne (à savoir que si je laisse à 0 ça ne marche pas).

    Merci

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Dans les propriétés de ta zone de liste mets la ligne source contrôle à blanc.
    Fichier exemple modifié

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    c'est bien ça, j'avais trouvé mais tu as été plus rapide. Plus de problème donc, il me reste l'autre question qui est resté en suspend sur le même forum et qui s'appelle "imprimer un champ", si tu te sens d'attaque je suis tout oui et encore merci pour ton aide.

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

Discussions similaires

  1. Gestion des messages d'erreur
    Par ymoreau dans le forum Qt
    Réponses: 10
    Dernier message: 16/08/2010, 21h48
  2. Réponses: 3
    Dernier message: 06/11/2007, 19h15
  3. Réponses: 2
    Dernier message: 12/10/2006, 23h36
  4. [GUI] Gestion des messages d'erreurs
    Par agent007se dans le forum C++
    Réponses: 11
    Dernier message: 28/07/2006, 20h52
  5. gestion des messages d'erreurs
    Par keibenoit dans le forum Access
    Réponses: 2
    Dernier message: 31/05/2006, 14h49

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