OVH Cloud OVH Cloud

Cycle d'exécution pour Validate

2 réponses
Avatar
jerome
Bonjour,

J'ai un formulaire dans lequel le premier champ à remplir est un nom.
Ensuite je teste si le champ renseigné est vide ou non en faisant

Private Sub nom_Validate(Cancel As Boolean)

If Trim(nom.Text =) "" Then
MsgBox "nom obligatoire"
nom .SetFocus
Exit Sub
End If

End sub

Le problème est que le programme passe dans le nom_Validate au chargement du
formulaire et donc que j'ai le message d'erreur avant que l'on puisse saisir
quoi que ce soit, puisqu'au chargement le nom est vide.

Comment éviter cela ?
Et plus généralement où puis-je trouver des informations sur les cycles
d'exécutions ?

Merci

2 réponses

Avatar
Driss HANIB
soit tu fais d'abord un test pour savoir si la chaine est vide avant de
faire ton 'Trim$'
soit si tu veux seulement ne tester qu'au moment de la saisie, tu peux créer
une variable 'Initialisation' que tu mets à vrai en début de Form_load et
que tu remets à faux à la fin de cette procédure.

Et dans l'évènement Text_Change, tu vérifies que cette variable
'Initialisation' est bien à faux avant de faire ton test.
par contre garde bien ma première partie, car si l'utilisateur efface le
contenu de text, tu auras quand même le message d'erreur..

Driis
"jerome" a écrit dans le message de
news:
Bonjour,

J'ai un formulaire dans lequel le premier champ à remplir est un nom.
Ensuite je teste si le champ renseigné est vide ou non en faisant

Private Sub nom_Validate(Cancel As Boolean)

If Trim(nom.Text =) "" Then
MsgBox "nom obligatoire"
nom .SetFocus
Exit Sub
End If

End sub

Le problème est que le programme passe dans le nom_Validate au chargement


du
formulaire et donc que j'ai le message d'erreur avant que l'on puisse


saisir
quoi que ce soit, puisqu'au chargement le nom est vide.

Comment éviter cela ?
Et plus généralement où puis-je trouver des informations sur les cycles
d'exécutions ?

Merci






Avatar
jerome
Merci.

"Driss HANIB" wrote in message
news:OG$
soit tu fais d'abord un test pour savoir si la chaine est vide avant de
faire ton 'Trim$'
soit si tu veux seulement ne tester qu'au moment de la saisie, tu peux


créer
une variable 'Initialisation' que tu mets à vrai en début de Form_load et
que tu remets à faux à la fin de cette procédure.

Et dans l'évènement Text_Change, tu vérifies que cette variable
'Initialisation' est bien à faux avant de faire ton test.
par contre garde bien ma première partie, car si l'utilisateur efface le
contenu de text, tu auras quand même le message d'erreur..

Driis
"jerome" a écrit dans le message de
news:
> Bonjour,
>
> J'ai un formulaire dans lequel le premier champ à remplir est un nom.
> Ensuite je teste si le champ renseigné est vide ou non en faisant
>
> Private Sub nom_Validate(Cancel As Boolean)
>
> If Trim(nom.Text =) "" Then
> MsgBox "nom obligatoire"
> nom .SetFocus
> Exit Sub
> End If
>
> End sub
>
> Le problème est que le programme passe dans le nom_Validate au


chargement
du
> formulaire et donc que j'ai le message d'erreur avant que l'on puisse
saisir
> quoi que ce soit, puisqu'au chargement le nom est vide.
>
> Comment éviter cela ?
> Et plus généralement où puis-je trouver des informations sur les cycles
> d'exécutions ?
>
> Merci
>
>
>
>