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??
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??
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à
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
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)Envoyé par student007
un exemple ? ok
Tout petit extrait mais bon efficace.
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
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 ")
oué c pareil, il y a plusieurs maniere d avoir ce type de resultat
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:
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).
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
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:
Je comprend pas du tout...Erreur de compilation:
End If sans boc If
Slt
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 !
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
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 !
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...
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...
Re,
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 !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...
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 !
Le message d'erreur est pourtant clair
Pas de end if sur un if qui tient sur une seule ligne :
Ou bien
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 ")
Le _ sert justement à matérialiser que le retour à la ligne ne doit pas être compilé
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
salut,
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.Envoyé par samlepiratepaddy
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
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
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
C'est bon j'ai trouvé!!!
cette partie du code était simplement à supprimer:
Merci beaucoup à tous
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
Je vérifie tout les cas de figure possible et je reviens mettre le joli tag [Résolu]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager