Alimenter un formulaire Access avec VBA
Bonjour,
J'ai créé une zone de texte dans un formulaire que je souhaiterais alimenter avec la date du jour, mais sous une autre forme.
Ex: JJ/MM/AAAA modifié en AAAA/MM/JJ
Dans l'interface VBA d'Access, j'ai créé dans un premier temps une fonction qui convertit la date dans un autre format:
Function Convert_date(dat As Date)
Dim i As Integer
Dim ref As Date
For i = 1 To 10
ref(i) = dat(10 - i)
Next
Convert_date= ref
End Function
Puis le code pour alimenter la zone de texte:
Private Sub num_BeforeUpdate(Cancel As Integer)
Convert_date(num)
End Sub
Même si la fonction n'est pas correcte (je corrigerais), je souhaiterais savoir comment l'utiliser dans le second code pour alimenter la zone de texte.
Merci à tous par avance.
J'ai créé une zone de texte dans un formulaire que je souhaiterais alimenter avec la date du jour, mais sous une autre forme.
Ex: JJ/MM/AAAA modifié en AAAA/MM/JJ
Dans l'interface VBA d'Access, j'ai créé dans un premier temps une fonction qui convertit la date dans un autre format:
Function Convert_date(dat As Date)
Dim i As Integer
Dim ref As Date
For i = 1 To 10
ref(i) = dat(10 - i)
Next
Convert_date= ref
End Function
Puis le code pour alimenter la zone de texte:
Private Sub num_BeforeUpdate(Cancel As Integer)
Convert_date(num)
End Sub
Même si la fonction n'est pas correcte (je corrigerais), je souhaiterais savoir comment l'utiliser dans le second code pour alimenter la zone de texte.
Merci à tous par avance.
Configuration: Windows XP Internet Explorer 7.0
1 réponse
-
Il y a déjà une fonction pour ceci, inutile de réinventer la roue. C'est la fonction FORMAT(). Par exemple:
dim Exemple as date
exemple = JJ/MM/AAAA
FORMAT(exemple;"yyyy-mm-dd") <----- on peut transformer la date comme on veut ici (juste l'année "yyyy" etc.)
Ensuite pour transférer la date dans une zone de texte, il faut attribué la date comme valeur à la zone de texte.
Me.ZoneDeTexte.value = FORMAT(exemple;"yyyy-mm-dd")
ALORS:
Private Sub num_BeforeUpdate(Cancel As Integer)
Me.ZoneDeTexte.value = FORMAT(num;"yyyy-mm-dd")
End Sub