|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Laurent Développeur Java Inscription : octobre 2011 Messages : 3 ![]() |
Bonjour à tous,
Tout d'abord, désolé si je ne poste pas au bon endroit mais je suis nouveau sur le forum Voici mon problème j'essaie de tester la valeur d'une date dans un contrôle indépendant sur un formulaire (Access 2003), et si cette date remonte à moins de 20 ans, je voudrais un message d'erreur et forcer à recommencer la saisie. Après plusieurs recherches, j'ai donc fais ceci : Code :
D'avance merci. |
||
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : février 2010 Messages : 100 ![]() |
Bonjour
A la place de Me.Undo, mets : J'ai vérifié au passage, il faut placer le code dans l'évènement AfterUpdate et non BeforeUpdate pour que la remise à 0 du champ soit prise en compte sans générer d'erreurs. Cordialement, Beub'. |
|
|
10
|
|
|
#3 | ||
![]() ![]() |
Bonjour,
Autant utiliser un événement plus approprié, à mon sens, soit "Avant MAJ" de ton formulaire. Code :
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor) Ici, on ne perd pas de temps ! On en passe... Ce message (ou un autre) vous a aidé ? Votez pour lui avec
|
||
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Laurent Développeur Java Inscription : octobre 2011 Messages : 3 ![]() |
Un grand merci Beub' c'était bien ça...
Par contre aurais tu une méthode pour replacer le focus sur mon contrôle car j'essaie (toujours dans l'événement Après mise à jour) Mais cela ne fait rien... |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Laurent Développeur Java Inscription : octobre 2011 Messages : 3 ![]() |
Bonjour Domi2,
J'ai bien tenté ta méthode ( qui me paraissait plus logique mais j'obtiens l'erreur 2108 : Vous devez enregistrer le champ avant d'exécuter la méthode SetFocus En tous cas merci de ta réponse. Cordialement, |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : février 2010 Messages : 100 ![]() |
Le Cancel = True permet déjà de ne pas quitter le champ (il remplace le SetFocus). Mais je ne sais pas remettre à 0 le champ sur un beforeupdate
D'un autre côté, si on est coincé dans le champ (avec le Cancel = True), il n'y a pas vraiment de raison de le remettre à 0... On restera dans le champ tant que le test de validation ne sera pas positif => remise à 0 inutile, l'utilisateur est contraint de le faire. ![]() En ce qui concerne le setFocus, je sais qu'il a tendance à être capricieux (une simple recherche sur google t'en diras plus). Donc pas de solution rapide à te donner. J'y réfléchirai ce soir ! Cela dit, à vue de nez, passe par un beforeupdate avec un Cancel = True : ça verrouillera le focus sur le champ texte tant que la valeur sera erronée. Si tu veux garder une porte de sortie pour l'utilisateur (je te le conseille, quand même... - la date est valide => changement de focus toléré - la date est invalide => changement de focus non toléré avec message expliquant les possibilités. - le champ est vide => changement de focus toléré Cordialement, Beub'. |
|
|
00
|
|
|
#7 | |
![]() ![]() |
La discussion sur le SetFocus, oui, mais bon.
Il ne faut pas perdre de vue qu'on utilise l'évènement Avant MAJ d'un formulaire. Et qu'en principe, on a pas un seul contrôle sur celui-ci, mais plusieurs, donc autant de tests de plausibilités possibles. Et comme on ne sait pas d'avance lequel peut échouer, on redonne le focus au contrôle. Pas besoin également de vider le contrôle ou de la mettre à zéro. Ayant reçu le focus, il est actif et en surbrillance. Donc, à la première frappe, l'ancienne valeur sera annulée. Citation:
Et comment déclenches-tu la validation des données ?
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor) Ici, on ne perd pas de temps ! On en passe... Ce message (ou un autre) vous a aidé ? Votez pour lui avec
|
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
salut domi2
, Beub' et bienvenu lolodij21,autrement: feuille de propriétés/données/valide si mettre: cf <F1> pour plus ample description et personnalisation du message. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com