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

Controle de saisie de données sur une zone de texte

3 réponses
Avatar
Nesta
Bonjour à tous,

Je souhaite effectuer un controle de saisie sur une zone de texte d'un
formulaire.
Voici mode code :

While (Me.MaZoneDeTexte.Value = "")

MsgBox "Vous devez renseigner ce champ", vbCritical

Wend

Lors de l'exécution, pas moyen de faire cette boucle se valider correctement
: c'est comme si la zone de texte est effectivement renseignée !
J'ai essayé aussi avec Null (en attribuant par défaut cette valeur à ma zone
de texte) :

While (Me.MaZoneDeTexte.Value = Null)

MsgBox "Vous devez renseigner ce champ", vbCritical

Wend

mais ça me fait la même chose !
Est-ce que quelqu'un peut m'expliquer pourquoi svp ? Merci d'avance !

Nesta

3 réponses

Avatar
Gelos64
Null n'est pas une valeur, il faut faire le test
isnull(Me.MaZoneDeTexte.Value ) =true

Mais le plus simple c'est de convertir en string en concaténant avec un ""
et de tester une chaine vide

While (Me.MaZoneDeTexte.Value &""= "")


"Nesta" a écrit dans
Bonjour à tous,

Je souhaite effectuer un controle de saisie sur une zone de texte d'un
formulaire.
Voici mode code :
Lors de l'exécution, pas moyen de faire cette boucle se valider
correctement : c'est comme si la zone de texte est effectivement
renseignée !
J'ai essayé aussi avec Null (en attribuant par défaut cette valeur à ma
zone de texte) :


Avatar
3stone
Salut,

"Nesta"
| Je souhaite effectuer un controle de saisie sur une zone de texte d'un
| formulaire.
| Voici mode code :
|
| While (Me.MaZoneDeTexte.Value = "")
|
| MsgBox "Vous devez renseigner ce champ", vbCritical
|
| Wend


Ou veux tu faire tourner une telle... horreur ? ;-)

Si tu veux qu'un champ soit obligatoire, soit tu configure
cela dans les paramètres de la tables, soit tu vérifies
cette zone de texte dans l'événement "Avant mise à jour"
du formulaire !

Et là, un simple :

if Isnull(Me!ZdT) then
Cancel = true 'annule la mise à jour
Msgbox "Vous devez renseigner le champ ZdT"
End if

Pas de code qui boucle inutilement (et dangereusement)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Nesta
Lol !! Je sais, c'est pas très joli comme code, mais c'est comme ça quand on
n'est pas un expert !
En tous cas, merci à tous les deux pour vos solutions que je vais tester de
ce pas !

A bientôt !


Nesta


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

Salut,

"Nesta"
| Je souhaite effectuer un controle de saisie sur une zone de texte d'un
| formulaire.
| Voici mode code :
|
| While (Me.MaZoneDeTexte.Value = "")
|
| MsgBox "Vous devez renseigner ce champ", vbCritical
|
| Wend


Ou veux tu faire tourner une telle... horreur ? ;-)

Si tu veux qu'un champ soit obligatoire, soit tu configure
cela dans les paramètres de la tables, soit tu vérifies
cette zone de texte dans l'événement "Avant mise à jour"
du formulaire !

Et là, un simple :

if Isnull(Me!ZdT) then
Cancel = true 'annule la mise à jour
Msgbox "Vous devez renseigner le champ ZdT"
End if

Pas de code qui boucle inutilement (et dangereusement)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)