Access 2003 Boite MSGBOX

Résolu
Bonjour,

Je souhaiterai pouvoir créer, au moment de la fermeture d'un formulaire une boite msgbox qui demande à l'utilisateur de renseigner les champs obligatoires, genre, "vous n'avez pas renseigné le nom de la personne", par contre, si ce champs est rempli, "vous n'avez pas renseigné la commune..." et ainsi de suite jusqu'à ce que tous les champs obligatoires soit remplis....."
Le problème actuellement c'est que je n'autorise pas de valeur null dans certains champs, et quand ce n'est pas remplis, l'erreur est incompréhensible pour l'utilisateur, je voudrai mettre un message clair
Merci à celui qui pourra me renseigner.
Cordialement
Joss

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,
    Un peu difficile sans connaitre la structure de fonctionnement personnalisé de votre BD !

    1. Bonjour,
      Une possibilité, utiliser la procédure événementielle [sur changement], ce qui permet de créer le message désiré : exemple pour le champ [Nom] :
      Dans les propriétés, onglet [Evénement], sous [sur changement], mettre [Procédure événementielle] et ensuite dans l'éditeur VBA compléter la procédure avec votre message, soit:
      Private Sub Nom_Change()
      MsgBox "Vous n'avez pas renseigné le nom de la personne!"
      End Sub
      Répéter la marche à suivre pour chaque champ concerné !

      1. Bonjour
        Merci pour cette proposition, ça fonctionne !
        Joss
        1. Pingou

          J'ai un problème avec ta proposition, parce que si chaque champs n'est pas sélectionné automatique, la procédure ne sert à rien...

          En cherchant un peu, voilà ce que je propose :
          "
          Private Sub Form_BeforeUpdate(Cancel As Integer)
          If IsNull([LIEN_AVEC_LA_PA]) Or [LIEN_AVEC_LA_PA] = "" Then
          MsgBox "Sélectionnez le lien avec la PA"
          Cancel = True
          ElseIf IsNull([PRISE_DE_CONNAISSANCE_CLIC]) Or [PRISE_DE_CONNAISSANCE_CLIC] = "" Then
          MsgBox "Indiquez la Prise de connaissance du CLIC"
          Cancel = True
          ElseIf IsNull([DEMANDE_INITIALE]) Or ([DEMANDE_INITIALE]) = "" Then
          MsgBox "Indiquez la demande initiale"
          Cancel = True
          ElseIf IsNull([PROPOSITION_INITIALE]) Or [PROPOSITION_INITIALE] = "" Then
          MsgBox "Indiquez la proposition initiale"
          Cancel = True
          ElseIf IsNull([CIVILITE_PA]) Or [CIVILITE_PA] = "" Then
          MsgBox "Précisez la civilité de la PA"
          Cancel = True
          ElseIf IsNull([NOM_PA]) Or [NOM_PA] = "" Then
          MsgBox "Entrez le Nom de la PA"
          Cancel = True
          ElseIf IsNull([TRANCHE_AGE]) Or [TRANCHE_AGE] = "" Then
          MsgBox "Sélectionnez la tranche d'âge de la PA"
          Cancel = True
          ElseIf IsNull([VILLE_PA2]) Or [VILLE_PA2] = "" Then
          MsgBox "Sélectionnez la Ville de la PA ***** Si pas d'information, séléectionnez dans la liste : -Hors Secteur- ou -Non Localisé-"
          Cancel = True
          ElseIf IsNull([SITUATION_FAMILIALE]) Or [SITUATION_FAMILIALE] = "" Then
          MsgBox "Sélectionnez la Situation Familiale de la PA"
          Cancel = True
          End If
          End Sub
          "
          Le probleme que je rencontre, c'est qu' il ne vérifie que 3 champs sur 9....., il me zappe les 3 premiers, la tranche d'âge et la situation familiale, donc si les 3 concernés sont remplis, il valide la fermeture du formulaire... et c'est pas ce que je veux...
          Pourquoi ? aurais-tu une réponse à m'apporter
          Merci à toi
          Joss
          1. ?????
            Ton lien me renvoie sur cette page... est-ce normal ?
            Merci
            Joss
            1. Bonsoir,
              Ok je te transmets ma base demain via ci-joint.fr histoire de voir a quoi elle ressemble
              Merci
              Bonne soirée
              1. Bonjour,
                Merci, pensez à la compresser en ZIP ou RAR avant de la mettre sur cjoint.
              2. Merci Pingou pour ton aide précieuse, il s'avère que j'ai trouvé la solution, concernant les champs qui n'était pas pris en compte, c'est tout simplement parce que c'est champs sont des listes déroulantes basées sur des requêtes et la valeur par défaut était "zero", donc forcément la condition en question était remplie, donc pas prise en compte... J'ai modifié la valeur par défaut de ces champs par la valeur "Null", ce qui fait que tout est rentré dans l'ordre.
                En tout cas merci à toi, je n'y serai pas arrivé sans ton soutien
                Joss
              3. Merci pour l'information.
                Bonne suite.
                Salutations.
                Le Pingou