CONVERSION DATE /VBA-- ACCESS

Signaler
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
-
Messages postés
1
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
19 juin 2006
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31950-conversion-date-vba-access

Messages postés
1
Date d'inscription
lundi 19 juin 2006
Statut
Membre
Dernière intervention
19 juin 2006

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 :)
Messages postés
1
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
19 juillet 2005

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.
Messages postés
185
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
20 juin 2013

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
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
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