Je sèche, je sèche et j’espère que vous pourrez m’aider. Les questions sur les champs vides à vérifier sont venus souvent dans ce forum et j’avais noté quelques discussions pour résoudre un problème que j’ai et que vous expose.
Je m’y suis remis dessus cette après midi, mais sans résultat.
Dans un formulaire qui est basé sur une table, je tente de vérifier la saisie des initiales (3 caractères) dans une zone de texte que j’ai appelé initiales (2 premières lettres et dernière lettre du nom)
Sur l’événement avant MAJ de la zone de texte ‘initiales’ j’ai associé le code suivant
La fonction EstVide vient d’une discussion précédente sur les champs vides ( voir ici ) et correspond à ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub initiales_BeforeUpdate(Cancel As Integer) MsgBox EstVide(Me.initiales.Text) If Len(Me.initiales) < 3 Or Len(Me.initiales) > 3 Then reponse = MsgBox(" veuillez entrer les initiales du nom avec les 2 premières lettres et la dernière ", 0) With Me!initiales .SelStart = 0 .SelLength = Len(.Value) Cancel = True End With End If End Sub
J’ai mis le MsgBox pour débuger momentanément. Cette routine fonctionne très bien lorsque l’utilisateur ne rentre pas les 3 caractères requis. Par contre elle ne détecte pas le champ vide. Curieusement lorsque l’utilisateur tape d’abord un caractère, puis l’efface, puis tapes <ENTER> le MsgBox m’affiche bien que le champ est vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Function EstVide(val) EstVide = False If IsNull(val) Or IsEmpty(val) Or Len(val) = 0 Then EstVide = True End If End Function
Il me semble qu’à l’entrée de la zone de texte le champ n’est pas vide (j’ai bien vérifié sur un nouvel enregistrement) et j’ai tenté de mettre le champ à vide par du code sur événement sur entrée :
Cela ne change rien. Donc pour résumer je souhaite vérifier que ma zone de texte est vide et si c’est le cas afficher un message d’erreur et revenir à la saisie de cette zone de texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub initiales_Enter() Me.initiales.Value = "" End Sub
Quelqu’un a une idée ??? Merci de votre aide
Partager