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

Access Discussion :

vba access bloquer champs formulaire si vide [AC-2007]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 28
    Points
    28
    Par défaut vba access bloquer champs formulaire si vide
    Bonjour à tous,

    je suis débutant en VBA Access. j'ai crée une petite base de donnée pour m'exercer. j'ai crée un formulaire pour saisir le nom et le prénom d'une personne. j'ai ensuite écrit un code vba pour ne pas laisser un champs vide. je veux que dès que le champs nom par exemple perd le focus, qu'il soit fait une vérification pour s'assurer que le champs n'est resté vide. si c'est le cas le il faudra ramener l'utilisateur sur le champs en question. Mon souci c'est j'ai utilisiter SetFocus, DoCmd.GoToControl et même cancel=true, aucun ne marche. ci-dessous les lignes de codes saisies. Merci de me mettre sur la voie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sub Ch_NomStagiaire_LostFocus()
     
    If Len(Ch_NomStagiaire.Value) = 0 Then
       MsgBox "Le champs NOM DE STAGIAIRE est resté vide. Merci de le renseigner"
       'Me.Ch_NomStagiare.SetFocus
       'DoCmd.GoToControl ("Ch_NomStagiaire")
       ' Annuler la suite des opérations
       Cancel = True
    Else
       MsgBox "Vous saisie '" & Ch_NomStagiaire.Value & "' dans le champs NOM DE STAGIAIRE."
     
    End If
     
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,


    je suis débutant en VBA Access. j'ai créé une petite base de données pour m'exercer.
    Ça, c’est une bonne idée !

    Par contre pour empêcher une valeur Null ou vide dans une colonne de table, oriente-toi plutôt vers la définition de la table : dans les propriétés de la colonne, tu peux interdire le Null et le vide.




    Et, d'une manière générale, pour contrôler une valeur avant de l'accepter, vois l'événement Avant mise à jour.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    C'est bien ce que j'ai finalement. Merci de me conforter dans ce choix. Mais j'espérais trouver une méthode pour le faire autrement surtout que le nom du champs dans la table s'affiche dans le message d'erreur qui apparait quand le champs est vide. Pour revenir à mon code, que lui manque pour faire ce que je demande?? j'espère que je ne vous agace pas???

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    j'espère que je ne vous agace pas???
    Pas de souci : j'ai été débutant avant toi !

    Mais que veux-tu au juste ?

    Explique avec un exemple, ce que l'utilisateur fait comme actions et comment voudrais-tu qu'Access réagisse.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    ok! Merci!
    Mon projet d'apprentissage est le suivant:
    je voudrais faire une petite base de donnée access avec tables, formulaires, les requetes et états pour un suivi de stagiaire dans un service donné
    la 1ere étape, celle des tables T_Stagiaire et T_Service. c'est fait.
    je suis à présent à la 2ème étape, celle des formulaires. j'ai créé un formulaire Fm_Stagiaire qui permet à l'utilisateur de saisir simplement le nom et le prénom du stagiaire. j'ai écrit un code VBA avec l'évement LostFocus() sur le champs "nomStagiaire" qui devrait obliger l'utilisateur à renseigner le nom du stagiaire en lui envoyant un message d'erreur pour lui demander de remplir le champ et en le remenant sur le champs "nomStagiaire" qu'il doit obligatoirement remplir.
    Mon souci c'est que je n'arrive pas à faire bloquer l'utilisateur sur le champs en question. j'ai utiliser le SetFocus, DoCmd.GoToControl par de résultat. pouvez-vous me dire ce que j'aurais du mettre dans mon code pour arriver à mes fins?? merci encore pour votre aide.

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Sur la perte de focus du contrôle NomStagiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub NomStagiaire_LostFocus()
      If IsNull(Me.NomStagiaire) = True Then
        MsgBox "Le champ NOM DE STAGIAIRE est resté vide. Merci de le renseigner"
      End If
    End Sub
    Le message sera affiché si NomStagiaire a la valeur Null.

    Mais le curseur se positionne automatiquement sur le contrôle suivant dans l'ordre de tabulation.

    Si tu veux que le curseur « reste » sur le contrôle NomStagiaire, il faut un peu ruser !

    Sur l'événement Réception de focus du contrôle qui suit dans l'ordre de tabulation, tu places ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CtlQuiSuit_GotFocus()
      If IsNull(Me.NomStagiaire) = True Then
          DoCmd.GoToControl "NomStagiaire"
      End If
    End Sub
    L'utilisateur aura ainsi l'illusion que le curseur n'a pas bougé.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    Merci ClaudeLELOUP, ca fonctionnent parfaitement. Merci bien. j'espère pouvoir compter sur vous les autres fois... Merci encore.

  8. #8
    rnd
    rnd est déconnecté
    Membre habitué Avatar de rnd
    Homme Profil pro
    Prestataire indépendant
    Inscrit en
    Mars 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Prestataire indépendant

    Informations forums :
    Inscription : Mars 2004
    Messages : 142
    Points : 188
    Points
    188
    Par défaut
    Bonjour,

    Une autre alternative est d'utiliser l’événement sur sortie du controle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub NomStagiaire_Exit(Cancel As Integer)
      If IsNull(Me.NomStagiaire) = True Then
        MsgBox "Le champ NOM DE STAGIAIRE est resté vide. Merci de le renseigner"
        Cancel = True
      End If
    End Sub
    Cdt, Renaud.

  9. #9
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 128
    Points : 495
    Points
    495
    Par défaut comment empêcher le curseur de quitter une zone de recherche
    Citation Envoyé par rnd Voir le message
    Bonjour,

    Une autre alternative est d'utiliser l’événement sur sortie du controle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub NomStagiaire_Exit(Cancel As Integer)
      If IsNull(Me.NomStagiaire) = True Then
        MsgBox "Le champ NOM DE STAGIAIRE est resté vide. Merci de le renseigner"
        Cancel = True
      End If
    End Sub
    Cdt, Renaud.
    Bonjour membres du forum,
    comment empêcher le curseur de quitter une zone de recherche tant que l'on n' pas finit d'entrer
    au moins un mot de é ou 3 ?

    Nom : CaptureCodeRecherche ListeDeroulanteAlphaNumérique 33_Tbl_PARENT.PNG
Affichages : 1124
Taille : 22,5 Ko

    Cordialement.

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

Discussions similaires

  1. [MySQL] champs formulaire pas vide
    Par metalange dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/02/2010, 12h32
  2. [VBA][ACCESS]suppression champs vides
    Par k_pone dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/06/2007, 16h01
  3. [VBA/access]validation des champs d'un formulaire access
    Par hoaxpunk dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/04/2007, 13h28
  4. [access] modifier champ, formulaire fermé
    Par Puffcash dans le forum Access
    Réponses: 8
    Dernier message: 03/08/2006, 10h14
  5. [VBA-Access] un champs d'une requete en un string
    Par vdbadr dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 01/07/2006, 19h27

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