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

Comment intercepter un message d'erreur de saisie d'heure ?

1 réponse
Avatar
jf.marchina
J'essaie cette nouvelle formulation pour un problème posé il y a peu
mais resté sans réponse adaptée.
Je dispose de champs devant recevoir une heure de début et une heure
de fin dans un formulaire de saisie de planning, le plus souvent sous
forme entière (8 h, 9 h, ...). Pour cette raison, je souhaiterais que
l'utilisateur qui entre naturellement le nombre 8 pour désigner 8 h ne
soit pas importuné par l'apparition d'un message d'erreur (pas très
explicite d'ailleurs), qui ne s'affiche pas s'il entre 8:0 par
exemple.
N'y aurait-il pas moyen d'intercepter cette erreur, corriger la saisie
(remplacer 8 par 8:0, de façon transparente, et valider ainsi cette
valeur ?
L'horaire doit être saisi, par commodité dans un champ de type date,
dans un sous-formulaire associé à une table, en mode continu.
(J'ai déjà testé testé l'événement BeforeUpdate avec On Error, ou même
cancel = true), et ce sans succès...
Merci de votre aide.

1 réponse

Avatar
Raymond [mvp]
Bonsoir.

Le seul moyen d'interception de la saisie des heures c'est, dans cet ordre :
On change
erreur système
beforeupdate
afterupdate

beforeupdate est trop tard car si une saisie n'est pas valide en date access
aura la main avant que l'événement se déclenche.
il n'y a que l'événement on change qui intervient avant le contrôle système
et qui peut permettre de tester la valeur. Mais tout dépend si le prochain
caractère frappé sera un caractère de donnée ou une touche enfoncée. Si
c'est une touche le système prendra la main et ce sera terminé.
il ne reste qu'une solution, c'est de saisir ladate et heure dans un champ
texte sans masque de saisie. Il sera alors possible de controler la donnée
dans l'évènement BeforeUpdate et éventuellement de la reconstituer. les
minutes étant composées de gauche à droite et des 0 complétant la valeur
jusqu'à 6 chiffres. ensuite chaque série de 2 chiffres étant séparée par :
Quand à la date c'est plus facile car les jours et mois étant obligatoires à
2 chiffres , les années seront facilements transformables en 4 chiffres.
le résultat obtenu passera ensuite dans l'événement afterupdate et dans une
donnée date du formulaire.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"jfmarchina" a écrit dans le message de news:

J'essaie cette nouvelle formulation pour un problème posé il y a peu
mais resté sans réponse adaptée.
Je dispose de champs devant recevoir une heure de début et une heure
de fin dans un formulaire de saisie de planning, le plus souvent sous
forme entière (8 h, 9 h, ...). Pour cette raison, je souhaiterais que
l'utilisateur qui entre naturellement le nombre 8 pour désigner 8 h ne
soit pas importuné par l'apparition d'un message d'erreur (pas très
explicite d'ailleurs), qui ne s'affiche pas s'il entre 8:0 par
exemple.
N'y aurait-il pas moyen d'intercepter cette erreur, corriger la saisie
(remplacer 8 par 8:0, de façon transparente, et valider ainsi cette
valeur ?
L'horaire doit être saisi, par commodité dans un champ de type date,
dans un sous-formulaire associé à une table, en mode continu.
(J'ai déjà testé testé l'événement BeforeUpdate avec On Error, ou même
cancel = true), et ce sans succès...
Merci de votre aide.