Convertion de champ texte en date

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 573 fois - Téléchargée 23 fois

Contenu du snippet

je me suis trouver à reprendre plusieur application access qui elles memes avaient reprises et ainsi de suite...
un coup la saisie d'une date dans un formulaire étai "01/01/01" ou "01/01/2001" ou "010101" ou "01012001" à tous les coups on gagne.
j'ai donx fais ce petit code (je ne suit pas un PRO !, mais ça marche.
je me suit pas trop creusé la tête.

Source / Exemple :


'===============================
'Code à ajouter dans un module '
'Convertion texte en date date '
'P. Marchand le 07/03/2007     '
'===============================

Function StringDate(Fdate As Variant) As String
Dim JJDate, MMDate, YYDate As String
On Error GoTo Erreur_Saisie

' control du nombre d'argument date (010101) au minimum pour le 01/01/2001
If Len(Trim(Fdate)) < 6 Then GoTo Erreur_Saisie

'si il n'y a pas de "/" et que la longeure est comprise entre 6 et 8
If (InStr(1, Fdate, "/") = 0 And (Len(Trim(Fdate)) = 6 Or Len(Trim(Fdate)) = 8)) Then
JJDate = Trim(Left(Fdate, 2))
MMDate = Trim(Right(Left(Fdate, 4), 2))
If Len(Trim(Fdate)) = 6 Then YYDate = Trim(Right(Left(Fdate, 6), 2))
If Len(Trim(Fdate)) = 8 Then YYDate = Trim(Right(Left(Fdate, 8), 4))
StringDate = Format(JJDate & "/" & MMDate & "/" & YYDate, "DD/MM/YYYY")
Exit Function
Else
StringDate = Format(Fdate, "DD/MM/YYYY")
Exit Function
End If

Erreur_Saisie:
MsgBox "Erreure de saisie !) : exit funtion"

End Function

Conclusion :


Pas de bug detecté à ce jour. merci de m'avertir s

A voir également

Ajouter un commentaire Commentaires
Messages postés
15
Date d'inscription
mardi 28 février 2012
Statut
Membre
Dernière intervention
20 mars 2012

bonjour,
a quoi correspond chque élément fdate en particulier où écrit on le code peux tu me donner les étapes détaillées avant de saisir le code STP merci d'avnce
Messages postés
15
Date d'inscription
mardi 28 février 2012
Statut
Membre
Dernière intervention
20 mars 2012

Bonjour,
j'essaie mais ca ne marche pas
en fait j'ai un formulaire et un sous-formulaire les dates dont les types doivent être changé sont dans le sous formulaire
que dois je faire et si je dois mettre une instruction où dois je la mettre étape par étape fenêtre à ouvrir, bouton à cliquer plus d'infos merci d'avance
Messages postés
280
Date d'inscription
jeudi 24 mars 2005
Statut
Membre
Dernière intervention
18 mars 2009

J'aimerais bien comprendre pourquoi une telle fonction.

D'un l'algorithme est à revoir et de deux ta fonction ne suppose pas le paramètre fdate variant pouvant être n'importe quoi. Une ébauche de revision

if isnull(fdate) then
StringDate=""
elseif isdate(FDate) then
'T'aide déjà à résoudre la majeure partie des cas
StringDate=format(cdate(fdate),"dd/mm/yyyy")
else
'Tu peux tout fourrer ici, mais je te conseille l'appel d'une fonction pour la reconnaissance du texte.
StringDate=ReconnaissanceDate(cstr(fdate))
end if

function ReconnaissanceDate(byval sTexteDate as string) as string
...
end function

Bonne prog.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,
en utilisant une variable string pour récupérer le trim de FDate, çà t'éviterait pas mal de trim inutiles.
et tu ne prends pas en compte les dates fomatées pas "-"
++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.