Comment intercepter un message d'erreur de saisie d'heure ?
1 réponse
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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.
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" <jf.marchina@laposte.net> a écrit dans le message de news:
8cefdc8a.0501201016.2bf1f6da@posting.google.com...
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.
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.
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.