Lorsque vous manipulez des dates dans Access, celles-ci
s'écrivent différemment selon que vous travaillez via l'interface graphique ou
par programmation.
- Dans l'interface graphique d'Access, les dates
respectent les réglages de votre machine (donc de votre pays). Une date
française s'écrira 15/07/2002 (ce qu'Access transformera en
#15/07/2002#).
- Dès que vous programmez Access (VB ou SQL), vous passez
en "mode anglo-saxon" : mm/jj/aaaa au lieu de jj/mm/aaaa. La
même date devient donc #07/15/2002#.
Une solution pratique et définitive consiste à écrire une
fonction de conversion en Visual Basic, et à l'appeler dès que vous en avez
besoin. Pour écrire cette fonction :
- Cliquez sur l'onglet Modules de la base de
données.
- Cliquez ensuite sur le bouton Nouveau.
- Tapez le code suivant dans le module :
Function DateUS(ByVal dt As Variant)
If IsNull(dt) Then Exit Function
DateUS = "#" & Month(dt) & "/" & Day(dt) & "/" & Year(dt) & "#"
End Function
- Enregistrez le module en le nommant par exemple mod
Dates.
Lorsque vous souhaiterez convertir une date française en
date anglo-saxonne, vous remplacerez votre champ [Date française] par
DateUS([Date française]).
Vous trouverez un exemple sur la fiche Cumul.
Variante :
Sur le même principe, il peut être utile
de tenir compte de la date et de l'heure. Utilisez dans ce cas la
fonction suivante :
Function DateHeureUS(ByVal dt As Variant)
If IsNull(dt) Then Exit Function
DateHeureUS = "#" & Month(dt) & "/" & Day(dt) & "/" & Year(dt) _
& " " & Format(dt, "hh:nn:ss") & "#"
End Function