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 :

Saisie obligtoire dans un formulaire


Sujet :

Access

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 65
    Points
    65
    Par défaut Saisie obligtoire dans un formulaire
    Bonjour; j'aimerais savoir comment faire pour obliger l'utilisateur de remplir plusieurs cellules dans mon formulaire PLUS certaine dans un sous formulaire...

    Quelqu'un pourrait m'aider??

  2. #2
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    249
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 249
    Points : 94
    Points
    94
    Par défaut
    Va sur la table qui contient les données qui doivent être saisies
    Ouvre la en mode création puis met toi sur le champ de ton choix puis en bas dans l'onglet général tu mets la valeur Oui devant Null Interdit
    Voilà

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Ou bien sur l'évenement before update du formulaire, tu vérifies en VBA que les données ont bien été saisie.

    C'est la seule méthode qui te permettra de dire à l'utilisateur quel champ n'a pas été saisi. La méthode de virgile59, peut aussi être utilisé en complément sur la table, mais dans tous les cas, tu dois passer par vba pour gérer l'erreur proporement

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 47
    Points
    47
    Par défaut
    Oui tu peux faire ça, c est a dire un programme en VBA tres simple, avec des msgbox pourquoi pas, c est la meilleure façon pour que l utilisateur comprenne ses erreurs.
    Bon courage

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par student007
    Oui tu peux faire ça, c est a dire un programme en VBA tres simple, avec des msgbox pourquoi pas, c est la meilleure façon pour que l utilisateur comprenne ses erreurs.
    Bon courage
    Un exemple ? 8)

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 47
    Points
    47
    Par défaut
    un exemple ? ok
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if isnull forms!nomduformulaire!nomduchamp then 
    msgbox("Vous n avez pas rempli le champs, nomduchamps ")
    end if
    Tout petit extrait mais bon efficace.

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Sauf que là, ça ne tient pas compte de la valeur "" et isnull est une fonction

    De même Me sert a référencer le formulaire courant


    L'utilisation de Nz semble plus appropriée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if nz(Me.nomduchamp)="" then _
    msgbox("Vous n avez pas rempli le champ nomduchamps ")

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 47
    Points
    47
    Par défaut
    oué c pareil, il y a plusieurs maniere d avoir ce type de resultat

  9. #9
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 65
    Points
    65
    Par défaut
    Bonjour tout le monde.
    Je suis désolé de ne pas avoir répondu desuite...
    Malheureusement j'ai essayé un peu tout ce que vous m'avez donné comme exemple, mais je n'y arrive pas. Je dois avouer que je suis un GROS débutant.

    Voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Nz(Me.Nom) = "" Then _
    MsgBox ("Vous n'avez pas saisi le Nom ")
    end if 
     
    If Nz(Me.id_conditions) = "" Then _
    MsgBox ("Vous n'avez pas sélectionné la langue ")
    end if
    Ce formulaire est en fait une fiche client. Il m'est donc obligatoire de renseigner le nom et la langue du client (pour la suite).

    J'ai donc essayé de mettre ce code après MAJ, il ne fait rien. Et lorsque je le met à la fermeture la Access me dit:
    Erreur de compilation:
    End If sans boc If
    Je comprend pas du tout...

  10. #10
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Slt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Nz((Me.Nom) = "") Then _ 
    MsgBox ("Vous n'avez pas saisi le Nom ") 
    End if 
     
    If Nz((Me.Modifiable90) = "") Then _ 
    MsgBox ("Vous n'avez pas sélectionné la langue ") 
    End if
    Et si tu le met AfterMaj ça ne marchera pas bien, car si l'utilisateur ne fait que "passer" sur le champ il n'y a pas de mise à jour, donc il n'y a aucun effet !
    La recherche du "" doit se faire sur sortie du champ (Perte Focus) ET sur Fermeture du formulaire !!!
    Mais dans ton problème la solution très efficace est de mettre Null Interdit dans la Table elle même, comme ça il est impossible de faire autrement que de remplir les champs concernés, mais la méthode du If est plus pédagogique pour l'utilisateur !

  11. #11
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 65
    Points
    65
    Par défaut
    salut samlepiratepaddy !

    J'ai mis mon code à la perte du focus:
    - Pour le nom c'est nikel ça marche
    - Pour a langue ça marche aussi
    - Pour ce qui est de la fermeture, quand je clique sur fermer, tout se ferme mais rien ne me dit que j'ai oublié quelque chose...Y-a-t-il un code différent pour la fermeture?

    Même en mettant le Null interdit dans ma table client pour le nom et l'id_condition, lorsque je ferme mo formulaire il ne me dit rien...

  12. #12
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Re,
    Et comment tu ferme ton formulaire?

  13. #13
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 65
    Points
    65
    Par défaut
    Avec un bouton simple pour le fermer. J'ai meme essayé de coller le code sur le clic du bouton mais rien n'y fait...

  14. #14
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Re,
    Même en mettant le Null interdit dans ma table client pour le nom et l'id_condition, lorsque je ferme mo formulaire il ne me dit rien...
    Pense qu'il faut "changer" le champ de ton formulaire pour que ta modification que tu as fait dans le champ de la table soit opérationnel !
    De cette façon la vérif sur Close devient obsolète car l'utilisateur se verra refuser l'enregistrement de sa "fiche Client" si les champs auquel tu as mis Null Interdit OUI ne sont pas remplis !

  15. #15
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Le message d'erreur est pourtant clair

    Pas de end if sur un if qui tient sur une seule ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Nz(Me.Nom) = "" Then MsgBox ("Vous n'avez pas saisi le Nom ")
    Ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Nz(Me.Nom) = "" Then _ 
    MsgBox ("Vous n'avez pas saisi le Nom ")
    Ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Nz(Me.Nom) = "" Then 
    MsgBox ("Vous n'avez pas saisi le Nom ") 
    end if
    Le _ sert justement à matérialiser que le retour à la ligne ne doit pas être compilé

  16. #16
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    Citation Envoyé par samlepiratepaddy
    Mais dans ton problème la solution très efficace est de mettre Null Interdit dans la Table elle même, comme ça il est impossible de faire autrement que de remplir les champs concernés, mais la méthode du If est plus pédagogique pour l'utilisateur !
    je n'ai pas l'intention d'étendre le débat ou rediriger ce topic vers un autre. mais juste pour information. dans ce cas mettre Null interdit ne garantit pas l'obligation de saisie dans un champ puisqu'il existe la chaine vide. si l'utilisateur ne veux pas saisir dans un champ dans ce cas il lui suffira d'entrer une chaine vide. donc la solution plus efficace est celle avec un teste en utilisant nz() comme l'a suggéré Tofalu.

  17. #17
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 65
    Points
    65
    Par défaut
    J'ai compris pour le If et End If Tofalu. Je ne saivais pas à quoi servait ce _

    Le code marche très bien merci les gars/filles malheureusement lorsque je clique sur mon bouton fermer, il ne vérifie apparament pas mon formlaire car il dit rien

  18. #18
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 158
    Points : 163
    Points
    163
    Par défaut
    et bien en fait si tu vérifier à la fermeture du formulaire tes contrôles à saisir obligatoirement, tu peux coder comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub TonBouton_Click()
    If Nz(Me.Nom1) = "" OR Nz(Me.Nom2) = "" OR Nz(Me.NomN) = "" Then 
    MsgBox ("Vous n'avez pas saisi tous les champs obligatoires") 
    Exit Sub
    end if 
     
    DoCmd.Close
    End Sub

  19. #19
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 65
    Points
    65
    Par défaut
    OUhaou nikel LeScandinave!
    Pile poil ce que je cherchais! Merci beaucoup. En même temps j'ai essayé toutes les pistes que vous m'avez conseillé et toutes marchaient.

    J'ai juste un petit problème LeScandinave avec ton code... c'est que lorsque je ne rempli pas mon champ, il me le dit (c'est donc que ça marche) alors je le saisi, et je clique sur fermer. Et bien la mon bouton Fermer ne ferme plus...

    voilà mon code:

    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
    Private Sub Commande115_Click()
     
    If Nz(Me.Nom) = "" Or Nz(Me.id_conditions) = "" Then
        MsgBox ("Vous n'avez pas saisi tous les champs obligatoires")
    Exit Sub
    End If
     
     
     
    On Error GoTo Err_Commande115_Click
    Exit_Commande115_Click:
        Exit Sub
     
    Err_Commande115_Click:
        MsgBox Err.Description
        Resume Exit_Commande115_Click
     
     
     
    DoCmd.Close
    End Sub

  20. #20
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 117
    Points : 65
    Points
    65
    Par défaut
    C'est bon j'ai trouvé!!!
    cette partie du code était simplement à supprimer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    On Error GoTo Err_Commande115_Click
    Exit_Commande115_Click:
        Exit Sub
     
    Err_Commande115_Click:
        MsgBox Err.Description
        Resume Exit_Commande115_Click
    Merci beaucoup à tous
    Je vérifie tout les cas de figure possible et je reviens mettre le joli tag [Résolu]

Discussions similaires

  1. Pb saisie données dans ss-formulaire
    Par Snofiz dans le forum IHM
    Réponses: 0
    Dernier message: 04/03/2010, 23h18
  2. saisie automatique dans le formulaire
    Par DOUNIA595 dans le forum IHM
    Réponses: 2
    Dernier message: 20/08/2007, 08h42
  3. [MySQL] Saisie multiple dans un formulaire
    Par white_tiger dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/07/2007, 16h02
  4. Saisies redondantes dans un formulaire
    Par kabalaye dans le forum IHM
    Réponses: 5
    Dernier message: 18/01/2007, 15h31
  5. rendre une saisie obligatoire dans un formulaire
    Par heteroclite dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 17/09/2006, 23h26

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