Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONVERTION DE CHAMP TEXTE EN DATE


Information sur la source

Catégorie :VBA Classé sous : date, saisie, format, texte, champs Niveau : Débutant Date de création : 07/03/2007 Vu : 7 014

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

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

  • '===============================
  • '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
'===============================
'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
 

Commentaires et avis

signaler à un administrateur
Commentaire de PCPT le 08/03/2007 07:32:34 administrateur CS

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 "-"
++

signaler à un administrateur
Commentaire de asimengo le 09/03/2007 15:53:32

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.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Champs date avec un format different du classique [ par mymic ] Mon problème est le suivant.J'ai une base de donnée qui contient une table dans laquelle se trouve un champ date. Pour différentes raison j'ai du rede Format date import/export [ par Docck ] Salut tous,j'exporte des données depuis une table access vers Excel sauf que quand les champs sont des dates je dois définir moi meme les séparateurs convertir texte en date [ par bossun ] salut, dans ma BD j'ai un champs texte mais écris sous cette forme 15/02/2003. j'aimerais savoir si on peut utiliser cette valeur comme étant une date Afficher un format date en saisie dans un textbox [ par lurevital ] Bonjour,Je ne sais pas comment faire en VB pour pouvoir saisir une date dans un textbox en faisant afficher à l'utilisateur quelque chose du genre JJ/ pb de format de date [ par vanyou ] Bonjour, j'ai un pb au niveau de la saisie de date, j'ai mis pas mal de temps pour voir que mon recordset ne fonctionnait pas à cause du fait que la s Format Date dans les champs de DB [ par jack ] Salut à tousPour une fois, c'est moi qui suis coincé.Dans ma table, j'ai un champ au format Date générale (jj/mm/aaaa hh:nn:ss)Quand j'insère une donn Format champs date VB et SQL [ par iras ] Salut,j'essais utiliser cette requete comme RecordSource dans un ADODC pour afficher le resultat dans une DataGrid mais ça ne marche pas avec comme e Format Date, URGENT!!! [ par didi83 ] Bonjour &#224; tous, J'ai essay&#233; d'ajouter &#224; un texte la date sur access. J'ai mis setfocus ensuite je voulais mettre la date dans le texte Problème de format date [ par Herminator ] Bonjour &#224; tous, J'ai fais une connection en ADO sur un fichier .mdb (access97). J'ai un probl&#232;me pour extraire la date la plus r&#233;cente mettre le focus sur un champ texte [ par jimmypage64 ] j'ai un champ TEXTE o&#249; l'utilisateur doit saisir un date. Quand y sors du controle (perte de focus) je fais un verification pour voir si la date


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,577 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.