Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rendre une saisie obligatoire dans un formulaire

4 réponses
Avatar
ABournival
Bonjour à tous,

Voici mon problème, dans mon formulaire j'ai un champs dont je veux que
l'utilisateur remplisse sinon il ne pourra pas changer d'enregistrement tant
qu'il n'aura pas saisie l'information dans ce champs et je ne veux pas
spécifier cette condition dans la table (Null interdit à Oui). Voici le code
que j'ai fait, ça fonctionne à moitié, l'utilisateur est averti qu'il doit
remplir le champs et le curseur retourne dans le champs à remplir, mais
l'utilisateur peut changer d'enregistrement sans remplir la condition !

Private Sub Form_AfterUpdate()
If IsNull([DepActivité]) Then
MsgBox "Vous devez indiquer le Departement de l'activité !",
vbExclamation
[DepActivité].SetFocus 'Retourne dans le champ DepActivité
Cancel = False 'annule la validation de l'enregistrement
End If
End Sub

Merci à l'avance pour la réponse !

ABournival

4 réponses

Avatar
3stone
Salut,

"ABournival"
| Voici mon problème, dans mon formulaire j'ai un champs dont je veux que
| l'utilisateur remplisse sinon il ne pourra pas changer d'enregistrement tant
| qu'il n'aura pas saisie l'information dans ce champs et je ne veux pas
| spécifier cette condition dans la table (Null interdit à Oui). Voici le code
| que j'ai fait, ça fonctionne à moitié, l'utilisateur est averti qu'il doit
| remplir le champs et le curseur retourne dans le champs à remplir, mais
| l'utilisateur peut changer d'enregistrement sans remplir la condition !
|
| Private Sub Form_AfterUpdate()
| If IsNull([DepActivité]) Then
| MsgBox "Vous devez indiquer le Departement de l'activité !",
| vbExclamation
| [DepActivité].SetFocus 'Retourne dans le champ DepActivité
| Cancel = False 'annule la validation de l'enregistrement
| End If
| End Sub


Comme tu peux le remarquer, Form_AfterUpdate() à lieu *après*
la mise à jour ET n'a pas de possibilité d'annulation !!

Cancel = True te donne d'ailleur une erreur si tu compile ton code...

1) Il suffit de placer tout cela au bon endroit... "Form_BeforeUpdate"
2) Isnull() ne suffit pas forcément. Il suffit que l'utilisateur saisisse
un espace pour que le résultat ne soit pas Null.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
ABournival
Bonjour,

J'ai essayé ta solution sauf que si je met le code comme tu m'as mentionné à
Form_BeforeUpdate ca pause problème car il on deux autres champs à remplir
avant d'arriver à celui là ! Et pour ton questionnement au sujet de
"Isnull()" dans mon code l'utilisateur doit chioisir une valeur dans une
liste déroulante et c'est seulement ses valeurs qu'il peuvent prendre !
Est-ce qu'il y aurait une autre possibilité selon toi ? Avec la propriété
"Required", sauf que je sais pas comemnt vraiment l'utiliser ?

Merci

"Required" ?


Salut,

"ABournival"
| Voici mon problème, dans mon formulaire j'ai un champs dont je veux que
| l'utilisateur remplisse sinon il ne pourra pas changer d'enregistrement tant
| qu'il n'aura pas saisie l'information dans ce champs et je ne veux pas
| spécifier cette condition dans la table (Null interdit à Oui). Voici le code
| que j'ai fait, ça fonctionne à moitié, l'utilisateur est averti qu'il doit
| remplir le champs et le curseur retourne dans le champs à remplir, mais
| l'utilisateur peut changer d'enregistrement sans remplir la condition !
|
| Private Sub Form_AfterUpdate()
| If IsNull([DepActivité]) Then
| MsgBox "Vous devez indiquer le Departement de l'activité !",
| vbExclamation
| [DepActivité].SetFocus 'Retourne dans le champ DepActivité
| Cancel = False 'annule la validation de l'enregistrement
| End If
| End Sub


Comme tu peux le remarquer, Form_AfterUpdate() à lieu *après*
la mise à jour ET n'a pas de possibilité d'annulation !!

Cancel = True te donne d'ailleur une erreur si tu compile ton code...

1) Il suffit de placer tout cela au bon endroit... "Form_BeforeUpdate"
2) Isnull() ne suffit pas forcément. Il suffit que l'utilisateur saisisse
un espace pour que le résultat ne soit pas Null.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
Salut,

"ABournival"
| J'ai essayé ta solution sauf que si je met le code comme tu m'as mentionné à
| Form_BeforeUpdate ca pause problème car il on deux autres champs à remplir
| avant d'arriver à celui là !


Et alors ?

Le Form_BeforeUpdate n'a lieu que tu veux sauver ou quitter le formulaire!
Et donc tu vérifie si les saisies obligatoire on bien eu lieu, dans le
cas contraire, tu annulle et basta ;-)


| Et pour ton questionnement au sujet de
| "Isnull()" dans mon code l'utilisateur doit chioisir une valeur dans une
| liste déroulante et c'est seulement ses valeurs qu'il peuvent prendre !

Pour une liste, le IsNull() est ok


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Pierre CFI [mvp]
Basta....une fois s'il vous plait :o) dirait un corse belge

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
Access http://www.mpfa.info

"3stone" a écrit dans le message de news: %
Salut,

"ABournival"
| J'ai essayé ta solution sauf que si je met le code comme tu m'as mentionné à
| Form_BeforeUpdate ca pause problème car il on deux autres champs à remplir
| avant d'arriver à celui là !


Et alors ?

Le Form_BeforeUpdate n'a lieu que tu veux sauver ou quitter le formulaire!
Et donc tu vérifie si les saisies obligatoire on bien eu lieu, dans le
cas contraire, tu annulle et basta ;-)


| Et pour ton questionnement au sujet de
| "Isnull()" dans mon code l'utilisateur doit chioisir une valeur dans une
| liste déroulante et c'est seulement ses valeurs qu'il peuvent prendre !

Pour une liste, le IsNull() est ok


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/