OVH Cloud OVH Cloud

comment vérifier validité d'une date

7 réponses
Avatar
dav
pour vérifier que mon textbox contient bien une date je fais :

If Not IsDate(x1) Then
MsgBox "date 1 invalide"
Text1.SetFocus
Exit Sub
End If

mais ça ne marche pas...comment feriez vous ?
en fait je veux vérifier la validité d'une date avant de faire une
requete sql.
d'autre part j'ai lu qu'il fallait convertir une date au format
américain avant de la manipuler dans une requete sql, mais exite t-il
sous vb une façon simple de convertir ces dates ? pour l'instant
j'utilise la fonction Mid...mais c'est lourd.
merci,
dav

7 réponses

Avatar
LE TROLL
Bonjour,

Il me semble que c'est la fonction "DateSerial" qui rend le format de
date indépendant...

Pour le teste des date, je crois toujours (de tête), qu'avec une
variable de type "date", il y aura erreur si la date n'est pas conforme...
----------

"dav" a écrit dans le message de news:
419f0dec$0$8803$
pour vérifier que mon textbox contient bien une date je fais :

If Not IsDate(x1) Then
MsgBox "date 1 invalide"
Text1.SetFocus
Exit Sub
End If

mais ça ne marche pas...comment feriez vous ?
en fait je veux vérifier la validité d'une date avant de faire une requete
sql.
d'autre part j'ai lu qu'il fallait convertir une date au format américain
avant de la manipuler dans une requete sql, mais exite t-il sous vb une
façon simple de convertir ces dates ? pour l'instant j'utilise la fonction
Mid...mais c'est lourd.
merci,
dav


Avatar
ng
Salut,

Qu'appelles tu vérifier une date ? Vérifier si la date est une date valide
ou vérifier si la variable est bien de type date (pour une conversion) ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

dav wrote:
pour vérifier que mon textbox contient bien une date je fais :

If Not IsDate(x1) Then
MsgBox "date 1 invalide"
Text1.SetFocus
Exit Sub
End If

mais ça ne marche pas...comment feriez vous ?
en fait je veux vérifier la validité d'une date avant de faire une
requete sql.
d'autre part j'ai lu qu'il fallait convertir une date au format
américain avant de la manipuler dans une requete sql, mais exite t-il
sous vb une façon simple de convertir ces dates ? pour l'instant
j'utilise la fonction Mid...mais c'est lourd.
merci,
dav


Avatar
dav
j'ai un textbox et je rentre "31/11/2004", or cette date est fausse
comment vérifier cette rentrée AVANT de lancer un critere SQL

j'avais mis:

x1 = textbox
if not isDate (x1) then....

mais ça fonctionne pas.
dav

ng a écrit :

Salut,

Qu'appelles tu vérifier une date ? Vérifier si la date est une date valide
ou vérifier si la variable est bien de type date (pour une conversion) ?



Avatar
ng
Salut,

Avec ce code :

Private Sub Command1_Click()
Dim strDate As String
strDate = Text1.Text

If Not IsDate(strDate) Then
MsgBox "pas bon !"
End If
End Sub

Si je mets 31/11/2004 ca marche parfaitement.


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

dav wrote:
j'ai un textbox et je rentre "31/11/2004", or cette date est fausse
comment vérifier cette rentrée AVANT de lancer un critere SQL

j'avais mis:

x1 = textbox
if not isDate (x1) then....

mais ça fonctionne pas.
dav

ng a écrit :

Salut,

Qu'appelles tu vérifier une date ? Vérifier si la date est une date
valide ou vérifier si la variable est bien de type date (pour une
conversion) ?




Avatar
Jean-Marc
"dav" a écrit dans le message de
news:419f197c$0$8803$
j'ai un textbox et je rentre "31/11/2004", or cette date est fausse
comment vérifier cette rentrée AVANT de lancer un critere SQL

j'avais mis:

x1 = textbox
if not isDate (x1) then....

mais ça fonctionne pas.
dav



Hello,

Ceci fonctionne parfaitement:

Private Sub Command1_Click()
Dim myDate As String

myDate = Text1.Text
If Not IsDate(myDate) Then
MsgBox myDate & " n 'est pas une date valide.", vbCritical
Else
MsgBox myDate & " est une date valide.", vbInformation
End If
End Sub

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Avatar
Hervé
Salut dav,
Tu peux faire un formatage pour éviter déjà quelques erreurs de saisie de
façon à ce que se soit conforme aux dates de ta base (pas testé plus loin,
adapte au mieux) puis vérifier sur l'évennement "Validate" si la date est
valide. Normalement, en SQL les dates doivent être encadrées des signes
dièse # (si je me souvient bien ? à vérifier). Essai ce qui suit, la
propriété CauseValidation du TextBox doit être à True :

Private Sub Text1_KeyPress(KeyAscii As Integer)
'évite de dépasser la longueur
If Len(Text1) > 9 Then
KeyAscii = 0
Exit Sub
End If
'ne permet que les chiffres
'et la barre oblique
Select Case KeyAscii
Case 8, 47 To 57
Case Else
MsgBox "Carractère non valide !"
KeyAscii = 0
End Select
'formate 00/00/0000
Select Case Len(Text1)
Case 2, 5
If KeyAscii <> 47 Then KeyAscii = 47
Case 0, 1, 3, 4, 6 To 9
If KeyAscii = 47 Then KeyAscii = 0
End Select
End Sub

Private Sub Text1_Validate(Cancel As Boolean)
If Not IsDate(Text1) Then
Cancel = True 'empèche de quitter le contrôle
MsgBox "Date non valide !"
Else
'encadre la date de dièse pour la requête SQL
Text1 = "#" & Text1 & "#"
End If
End Sub

Hervé.

"dav" a écrit dans le message news:
419f0dec$0$8803$
pour vérifier que mon textbox contient bien une date je fais :

If Not IsDate(x1) Then
MsgBox "date 1 invalide"
Text1.SetFocus
Exit Sub
End If

mais ça ne marche pas...comment feriez vous ?
en fait je veux vérifier la validité d'une date avant de faire une
requete sql.
d'autre part j'ai lu qu'il fallait convertir une date au format
américain avant de la manipuler dans une requete sql, mais exite t-il
sous vb une façon simple de convertir ces dates ? pour l'instant
j'utilise la fonction Mid...mais c'est lourd.
merci,
dav


Avatar
jluc02
Le samedi 20 Novembre 2004 à 10:29 par dav :
pour vérifier que mon textbox contient bien une date je fais :

If Not IsDate(x1) Then
MsgBox "date 1 invalide"
Text1.SetFocus
Exit Sub
End If

mais ça ne marche pas...comment feriez vous ?
en fait je veux vérifier la validité d'une date avant de faire
une
requete sql.
d'autre part j'ai lu qu'il fallait convertir une date au format
américain avant de la manipuler dans une requete sql, mais exite t-il
sous vb une façon simple de convertir ces dates ? pour l'instant
j'utilise la fonction Mid...mais c'est lourd.
merci,
dav


ben ca ne marche pas !!!!!!!!!!!