OVH Cloud OVH Cloud

Before_Update

5 réponses
Avatar
Pat59
Bonjour,

J'ai un formulaire style InputBox, ou j'invite l'usager à saisir une date.
Je veux vérifier s'il s'agit d'une date.

J'ai essayé de le faire dans l'évennement Before_Update du contrôle et du
formulaire.

Sil la valeur est NULL j'y arrive. Par contre si l'usagerà entré du texte
c'est Access qui m'avise que le type de donnée est incompatible.

Comment fait-on pour intercepter le message d'Access?

Merci

Patrice

5 réponses

Avatar
3stone
Salut,

"Pat59"
| J'ai un formulaire style InputBox, ou j'invite l'usager à saisir une date.
| Je veux vérifier s'il s'agit d'une date.
|
| J'ai essayé de le faire dans l'évennement Before_Update du contrôle et du
| formulaire.
|
| Sil la valeur est NULL j'y arrive. Par contre si l'usagerà entré du texte
| c'est Access qui m'avise que le type de donnée est incompatible.
|
| Comment fait-on pour intercepter le message d'Access?


tester avec isdate()


if not isdate([ton champ]) then
msgbox "pas une date..."
cancel = true
end if


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Pat59
C'est ce que j'ait

Private Sub DatePrevue_BeforeUpdate(Cancel As Integer)

If Not IsDate(Me.DatePrevue) Then
MsgBox Message
End If

Ça fonctionne si la valeur est Nulle seulement
Avatar
3stone
re,

"Pat59"
| C'est ce que j'ait
|
| Private Sub DatePrevue_BeforeUpdate(Cancel As Integer)
|
| If Not IsDate(Me.DatePrevue) Then
| MsgBox Message
| End If
|
| Ça fonctionne si la valeur est Nulle seulement



Tu as mis un masque de saisie ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Pat59
Non je n'ai pas de masque de saisie

J'ai par contre le format : Date, complet pour le contrôle. Et il y a une
date par défaut à l'ouverture du form, qui s'affiche selon les paramètres
régionnaux de l'usager.

J'ai des usagers qui ont le format régionnal an-mois- jour. D'autres
mois-jour-an et d'autres encore jour-mois-an.

Bon tout ça pour dire que je ne leur impose pas de masque mais je dois
vérifier ce qu'ils ont mis la dedans. J'aimerais le gérer moi même avant
qu'Access le fasse.



re,

"Pat59"
| C'est ce que j'ait
|
| Private Sub DatePrevue_BeforeUpdate(Cancel As Integer)
|
| If Not IsDate(Me.DatePrevue) Then
| MsgBox Message
| End If
|
| Ça fonctionne si la valeur est Nulle seulement



Tu as mis un masque de saisie ?


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




Avatar
3stone
re,

"Pat59"
| Non je n'ai pas de masque de saisie
|
| J'ai par contre le format : Date, complet pour le contrôle. Et il y a une
| date par défaut à l'ouverture du form, qui s'affiche selon les paramètres
| régionnaux de l'usager.


et c'est normal ;-)



Pour la saisie, tu parle du message que te donne Access lorsque
tu saisi un valeur telle que "13/13/06" ?

en disant que la valeur est trop grande et blabla... ?

Je ne crois pas que tu puisse la contourner.
Je pense que la seule façon d'avoir totalement la main, est de passer
par un textbox indépendant et de faire le contrôle déjà indiqué par

isdate()

Mais, l'inconvénient est que tu dois t'occuper d'alimenter le textbox
lorsqu'une date existe déjà dans le champ!
Si cela en vaut la chandelle...


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