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

Empecher la sortie d'un champ vide

6 réponses
Avatar
Fred
Bonjour,

Je souhaite empêcher le déplacement du curseur d'un champ si ce dernier est
vide sans toutefois empêcher le clic sur le bouton fermeture du formulaire.

Si je fais le test dans l'évènement sortie, je ne peux plus cliquer sur le
bouton fermeture du formulaire : il faut à tout prix une valeur dans le
champ pour quitter le formulaire !

Si je fais le test dans BeforeUpdate, cet l'évènement n'est activé que si il
y a une modification dans le champ or si il reste vide cet l'évènement ne se
lance pas et on passe au champ suivant sans pb.

Quelqu'un aurait-il une idée ou une astuce pour y remédier.

Merci d'avance

6 réponses

Avatar
Pierre CFI [mvp]
bonjour
je pense que c'est insoluble ton pb

--
Pierre CFI
MVP Microsoft Access

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

"Fred" a écrit dans le message de news: 43e8be3b$0$7355$
Bonjour,

Je souhaite empêcher le déplacement du curseur d'un champ si ce dernier est vide sans toutefois empêcher le clic sur le bouton
fermeture du formulaire.

Si je fais le test dans l'évènement sortie, je ne peux plus cliquer sur le bouton fermeture du formulaire : il faut à tout prix
une valeur dans le champ pour quitter le formulaire !

Si je fais le test dans BeforeUpdate, cet l'évènement n'est activé que si il y a une modification dans le champ or si il reste
vide cet l'évènement ne se lance pas et on passe au champ suivant sans pb.

Quelqu'un aurait-il une idée ou une astuce pour y remédier.

Merci d'avance



Avatar
Fred
Vu le temps que j'y ai déjà passé, je le crains mais j'espèrais un peu...

Merci d'y avoir jeté un oeil.
Avatar
3stone
Salut,

"Fred"
| Vu le temps que j'y ai déjà passé, je le crains mais j'espèrais un peu...



C'est l'approche qui est fausse...

Ne pas sortir d'un champ ne signifie pas grand chose lorsqu'il suffit
de l'éviter par un clic dans un autre champ !
A moins que tu veuille aussi interdire le "clic" ;-)

Vérifie plutôt la valeur de tes champs avant mise à jour du formulaire,
et à fortiori sur clic de ton bouton... et prend la décision qui s'impose!


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Fred
Merci pour ces conseils.
En fait ce que je cherche me semble tout simple.

Avant de sortir d'un champ, je veux vérifier qu'il n'est pas vide. Si il est
vide, cela serait bien qu'il y un message qui le signale (ça c'est facile à
faire) et surtout que le focus reste dans ce champ. Pas la peine d'aller
plus loin si ce dernier n'est pas rempli comme attendu, c'est pourquoi je ne
souhaite pas vérifier mes champs à la mise à jour du formulaire mais tout de
suite surtout si ce champ engendre un calcul dont le résultat doit
s'afficher dans le formulaire.

Par contre si je souhaite tout annuler et fermer sans valider le contenu du
formulaire et tout en étant dans ce champ, je dois pouvoir le faire avec un
bouton fermeture. Apparemment en cliquant sur la fermeture de la fenêtre (la
petite croix en haut à droite) cela marche bien. Mais cliquer sur un objet
de type bouton ne doit pas fonctionner de la même façon que cliquer sur
l'objet fermeture de la fenêtre.

J'espère que je suis assez explicite.

A+

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

Salut,

"Fred"
| Vu le temps que j'y ai déjà passé, je le crains mais j'espèrais un
peu...



C'est l'approche qui est fausse...

Ne pas sortir d'un champ ne signifie pas grand chose lorsqu'il suffit
de l'éviter par un clic dans un autre champ !
A moins que tu veuille aussi interdire le "clic" ;-)

Vérifie plutôt la valeur de tes champs avant mise à jour du formulaire,
et à fortiori sur clic de ton bouton... et prend la décision qui s'impose!


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



Avatar
3stone
Salut,

"Fred"


| Avant de sortir d'un champ, je veux vérifier qu'il n'est pas vide.


Qui te dis que l'utilisateur IRA dans cette zone de texte ?


| Si il est
| vide, cela serait bien qu'il y un message qui le signale (ça c'est facile à
| faire) et surtout que le focus reste dans ce champ. Pas la peine d'aller
| plus loin si ce dernier n'est pas rempli comme attendu, c'est pourquoi je ne
| souhaite pas vérifier mes champs à la mise à jour du formulaire mais tout de
| suite surtout si ce champ engendre un calcul dont le résultat doit
| s'afficher dans le formulaire.

Pour tester si la zone de texte est vide :

dans l'événement sur "avant mise à jour"
if len(textbox)=0 then
msgbox "c'est vide"
cancel = true
end if


mais si l'utilisateur clique dans un autre textebox, il ne recevra jamais de message...
c'est pouquoi il faut tester avant la mise à jour du formulaire.


| Par contre si je souhaite tout annuler et fermer sans valider le contenu du
| formulaire et tout en étant dans ce champ, je dois pouvoir le faire avec un
| bouton fermeture. Apparemment en cliquant sur la fermeture de la fenêtre (la
| petite croix en haut à droite) cela marche bien. Mais cliquer sur un objet
| de type bouton ne doit pas fonctionner de la même façon que cliquer sur
| l'objet fermeture de la fenêtre.

et si tu le permet, tu annulle la saisie et annule la mise à jour:

Me.Undo
Cancel = true


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

Qui te dis que l'utilisateur IRA dans cette zone de texte ?
A l'ouverture du formulaire je place le focus dans ce champ, pas moyen d'y

échapper.

Pour tester si la zone de texte est vide :

dans l'événement sur "avant mise à jour"
Mais si l'utilisateur ne saisi rien, cet événement ne se déclenche pas et on

passe au contrôle suivant. C'est pourquoi je voulais utiliser l'évènement
sortie, mais du coup, à part faire ESC au clavier, plus moyen de fermer ce
formulaire avec un bouton (les utilisateurs aiment les choses visuelles
plutôt que de mémoriser le fonctionnement des touches) sans saisir quelque
chose dans ce contrôle.

Je sais, je suis exigeant, mais ce sont surtout les futurs utilisateurs de
mon appli qui le sont avec moi !!
Pour l'instant, j'ai réglé le pb en faisant le test dans l'évènement Enter
du champ suivant (si le champ A est vide retourne dans le champ A). Mais
cela suppose que l'utilisateur passe de contrôle en contrôle avec les
touches du clavier et pas en cliquant sur le contrôle de son choix, sinon il
peut aller où il veut, sans jamais remplir ce champ (je pourrais toujours
récupérer à la validation du formulaire).

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

Salut,

"Fred"


| Avant de sortir d'un champ, je veux vérifier qu'il n'est pas vide.


Qui te dis que l'utilisateur IRA dans cette zone de texte ?


| Si il est
| vide, cela serait bien qu'il y un message qui le signale (ça c'est
facile à
| faire) et surtout que le focus reste dans ce champ. Pas la peine d'aller
| plus loin si ce dernier n'est pas rempli comme attendu, c'est pourquoi
je ne
| souhaite pas vérifier mes champs à la mise à jour du formulaire mais
tout de
| suite surtout si ce champ engendre un calcul dont le résultat doit
| s'afficher dans le formulaire.

Pour tester si la zone de texte est vide :

dans l'événement sur "avant mise à jour"
if len(textbox)=0 then
msgbox "c'est vide"
cancel = true
end if


mais si l'utilisateur clique dans un autre textebox, il ne recevra jamais
de message...
c'est pouquoi il faut tester avant la mise à jour du formulaire.


| Par contre si je souhaite tout annuler et fermer sans valider le contenu
du
| formulaire et tout en étant dans ce champ, je dois pouvoir le faire avec
un
| bouton fermeture. Apparemment en cliquant sur la fermeture de la fenêtre
(la
| petite croix en haut à droite) cela marche bien. Mais cliquer sur un
objet
| de type bouton ne doit pas fonctionner de la même façon que cliquer sur
| l'objet fermeture de la fenêtre.

et si tu le permet, tu annulle la saisie et annule la mise à jour:

Me.Undo
Cancel = true


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