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 !

CONVERSION DATE /VBA-- ACCESS


Information sur la source

Catégorie :Base de Donnees Niveau : Débutant Date de création : 10/06/2005 Date de mise à jour : 10/06/2005 08:07:52 Vu : 14 192

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Petite fonction que je me sert dans mes requêtes. Elle convertie une chaîne de caractère au format date.
Les données à convertir sont de la forme "20050610" -->année, mois, jour

 

Source

  • Public Function DatePandore(mydate As string) as Date
  • 'Conversion au format date
  • On Error GoTo err_Date
  • If IsNull(mydate) Then
  • DatePandore = ""
  • Else
  • DatePandore = Right(mydate, 2) & "/" & Mid(mydate, 5, 2) & "/" & Left(mydate, 4)
  • End If
  • exit_err:
  • Exit Function
  • err_Date:
  • MsgBox "L'erreur suivante :" & vbCrLf & Err.Number & " " & Err.Description & vbCrLf & _
  • "s'est produite dans la fonction DatePandore", vbCritical, "NetJoao"
  • Resume exit_err
  • End Function
Public Function DatePandore(mydate As string) as Date
'Conversion au format date
On Error GoTo err_Date
    If IsNull(mydate) Then
        DatePandore = ""
    Else
        DatePandore = Right(mydate, 2) & "/" & Mid(mydate, 5, 2) & "/" & Left(mydate, 4)
    End If
exit_err:
    Exit Function
err_Date:
    MsgBox "L'erreur suivante :" & vbCrLf & Err.Number & " " & Err.Description & vbCrLf & _
        "s'est produite dans la fonction DatePandore", vbCritical, "NetJoao"
    Resume exit_err
End Function

Conclusion

Si quelqu'un a mieux, qu'il le fasse savoir ?
Utilisation de la fonction :
DatePandore([Champ])
Voilà c'est très basic, mais ça me sert bien.
 

Historique

10 juin 2005 08:07:52 :
Changement de nom

Commentaires et avis

signaler à un administrateur
Commentaire de econs le 10/06/2005 10:36:50 administrateur CS

En 2 lignes de moins. Le Resume sur le label exit_err ne sert à rien. Après le traitement d'erreur, c'est la ligne 'End Function' qui est interprétée, et donc on sort de la fonction. Pas besoin de faire un Goto sur le label exit_err puis de sortir par 'Exit Function'.
Bref, une optimisation de 2 lignes :o)



   1. Public Function DatePandore(mydate As string) as Date
   2. 'Conversion au format date
   3. On Error GoTo err_Date
   4.     If IsNull(mydate) Then
   5.         DatePandore = ""
   6.     Else
   7.         DatePandore = Right(mydate, 2) & "/" & Mid(mydate, 5, 2) & "/" & Left(mydate, 4)
   8.     End If
  10.     Exit Function
  11. err_Date:
  12.     MsgBox "L'erreur suivante :" & vbCrLf & Err.Number & " " & Err.Description & vbCrLf & _
  13.         "s'est produite dans la fonction DatePandore", vbCritical, "NetJoao"
  15. End Function

signaler à un administrateur
Commentaire de yan35 le 10/06/2005 11:07:33

Tu pouvais aussi faire :

Public Function DatePandore(mydate As String) As Date
'Conversion au format date
On Error GoTo err_Date
     If IsNull(mydate) Then
         DatePandore = ""
     Else
        DatePandore = Format(mydate, "0000\/00\/00")
     End If
Exit Function
err_Date:
     MsgBox "L'erreur suivante :" & vbCrLf & Err.Number & " " & Err.Description & vbCrLf & _
     "s'est produite dans la fonction DatePandore", vbCritical, "NetJoao"
End Function

signaler à un administrateur
Commentaire de erramiahmed le 19/07/2005 16:08:54

Salut, j'ai utilisé votre fonction dans un module MS Access. J'extrais des dates ( plus d'autres données ) à partir d'un fichier texte et je stock le tout dans une table. Mais j'ai un petit problème, la date une fois stockée le jour se transforme en année et l'année en jour (exemple "30/06/2005" ---> 05/06/1930 !!! ).
La requete utilisée a l'allure suivante :
DoCmd.RunSql " insert into ... values (" & date & "," & ... & ")".
Dernière chose : la fonction integrée à Access nommée CDate fait exactement la même tâche.

signaler à un administrateur
Commentaire de eowyn_ le 19/06/2006 15:31:07

Salut,
pour ton problème d'inversion jour:année, tu dois remplacer
DatePandore = Right(mydate, 2) & "/" & Mid(mydate, 5, 2) & "/" & Left(mydate, 4)
par
DatePandore = Left(mydate, 2) & "/" & Mid(mydate, 3, 2) & "/" & Right(mydate, 4)
enfin... je crois :)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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,172 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é.