Je veux sur l'évènement AfterUpdate d'un de mes champs, qu'il soit validé pour le bon format d'heure... j'aimerais connaitre des procedures pour faire la validation a partir du code.. les try catch existent-ils dans VBA???
Merci pour votre temps.
Je veux sur l'évènement AfterUpdate d'un de mes champs, qu'il soit validé pour le bon format d'heure... j'aimerais connaitre des procedures pour faire la validation a partir du code.. les try catch existent-ils dans VBA???
Merci pour votre temps.
salut
charleshbo a ecrit:
try catch c'est pour VB.Net pour l'instant... j'aimerais connaitre des procedures pour faire la validation a partir du code.. les try catch existent-ils dans VBA???
on 'espere avoir tout pour l'office 12 et donc pour la prochaine version d'access.
pour ton pb essaies quelque chose dans le genre:
Cependant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 On error goto MonErreur ' tratement ici exit sub MonErreur: msgbox "Une erreur inattendue s'est produite."
Juste apres tes declarations de variables et
Code : Sélectionner tout - Visualiser dans une fenêtre à part On error goto MonErreur
Juste avant le End sub de ta procedure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 exit sub MonErreur: msgbox "Une erreur inattendue s'est produite."
va voir ici, c'est plus complet
http://access.developpez.com/faq/?pa...GestionErreurs
@+
Bonsoir
Lorsque tu parles de champs, tu parles de contrôles d'un formulaire? Ce que je suppose puisque tu parles d'évènement afterupdate, et que tu travailles VBA pour Excel, ce que tu ne mentionnes pas.
Personnellement, j'intercepterais plutôt l'évènement BeforeUpdate ou l'évènement Exit du contrôle. En effet, ces évènements disposent d'un paramètre Cancel que l'on peut modifier pour invalider la sortie du contrôle.
Une saisie autre qu'une date affiche le message d'erreur et repositionne le pointeur dans le contrôle Nom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Nom_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Not IsDate(nom.Value) Then MsgBox "Saisie erronée" Cancel = True End If End Sub
Si tu travailles dans Access, tu peux déjà dégrossir pas mal le boulot avec les masques de saisie... Attention, avec Access, Cancel est de type integer et non MSForms.ReturnBoolean, mais cela ne change rien à la façon de manipuler la variable.
Ok?
Pierre Fauconnier
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
pour préciser je travaille VBA dans Access...
C'est plutot pour le traitement de l'HEURE et non de la date que j'aurais besoin d'une fonction ou quelque chose...
J'avais déjà un masque de saisie, mais mon utilisateur n'aimait pas a avoir a rentrer un 0 si l'heure est 07:52:00
C'est pourquoi je voulais indiquer un format a entrer pour l'utilisateur et ensuite vérifier sur un évènement (exit semble bon) si le format de l'heure est correct..
merci..
Si ton utilisateur doit entrer une heure et non une durée, et donc une valeur <=23:59:59, tu peux tester ceci
puisque les heures sont exprimées en partie décimale de journées...
Code : Sélectionner tout - Visualiser dans une fenêtre à part If Nom.Value>0 And Nom.Value < 1 then ...
Il faut adapter avec
si l'utilisateur peut encoder minuit...
Code : Sélectionner tout - Visualiser dans une fenêtre à part If Nom.Value>=0 And Nom.Value < 1 then ...
Ok?
Pierre Fauconnier
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Oui mais s'il n'utilise pas le bon format, et qu'il entre un chiffre entre 0 et 1 justement...Envoyé par Pierre Fauconnier
Il me semble que l'important n'est pas tant le format de saisie que la validité de la saisie. Access peut très bien afficher dans un certain format des données saisies avec un masque de saisie différent du format d'affichage.
Personnellement, je ne connais pas avec Access de remède marchant à tous les coups pour éviter de devoir saisir le 0 non significatif tout en ayant un format de saisie...
Mais peut-être ce masque de saisie existe-t'il?
Avis aux connaisseurs.
Pierre Fauconnier
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
essai ça dans une zone texte; dans la proprieté format:
00\:00\:00
Ne pas taper les deux points : lors de la saisie.
EDIT
1/Dans la propriété Format: "heure complet"
2/dans donnees-->masque de saisie:
09\:09\:09;0
@+
Partager