Vba access problème de date dans une requete sql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 26 591 fois - Téléchargée 38 fois

Contenu du snippet

Qui n'a pas eu de problème de date sous VBA Access 2000 ou autre.
Quand vous faites une requete sous VBA avec des criteres dates jj/mm/yyyy,
vos dates sont interprétées en mm/jj/yyyy.
Grace a ce petit bout de code vous pouvez y remedier.

Source / Exemple :


Function MakeUSDate(dDate As Variant)
    If Not IsDate(dDate) Then Exit Function
    MakeUSDate = "#" & Month(dDate) & "/" & Day(dDate) & "/" & Year(dDate) & "#"
End Function

Private Sub test_click()

Dim Req As String
Dim Date_Deb As String
Dim Date_Fin As String

Req = "SELECT * FROM T_FACTURE"

Date_Deb = MakeUSDate(Me.Date_Deb)
Date_Fin = MakeUSDate(Me.Date_Fin)

Req = Req & " WHERE T_FACTURE.FACT_MODIF Between " & Date_Deb & " AND " & Date_Fin & ""

DoCmd.RunSQL Req

End Sub

Conclusion :


Pour tester ce code, faites un formulaire avec un bouton et 2 champs Date_Deb et Date_Fin.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
117
Date d'inscription
lundi 23 octobre 2000
Statut
Membre
Dernière intervention
12 août 2009

Il y a aussi BuildCriteria() qui fait tout ça automatiquement ...
Messages postés
1
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 novembre 2006

pas trop programmeur, je me suis bien contenté de la première proposition qui marche à merveille. Merci Cidovul
Miguel
extra débutant
xatt2001@yahoo.fr
Messages postés
16
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
4 septembre 2008

Bonsoir tout le monde...
alors j'ai un probleme :
j'ai 2 controles de type DtPicker (date) + bouton de recherche + dataGrid + base de donnee...
lorsque je clique sur le bouton de recherche je veux que datagrid s'actualise automatiquement à condition que les enregistrements soient entre date debut et fin...
Si quelqu'un a la solution (requete SQL) ,il peut m'aider...
Merci d'avance

Mcool08@gmail.com
Messages postés
58
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
5 août 2009

Ouai moi je pense que vous vous prenez la tête pour pas grand chose. Pour formater une date au format US, il suffit de faire un : format(madate,"mm/dd/yyyy") à condition que ma date soit au format "dd/mm/yyyy".
En tout cas avec un DTPic , ça marche du tonerre.
Messages postés
14
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
1 août 2003

Adiu

Dès que j'ai un moment, j'éssaye les solutions proposées
Cependant, lorsque j'ai rencontré ce problème, l'inversion de mm et jj ne se faisait que lorsque mm<jj
Exemple : 12/10/2001 =>12/10/2001
10/12/2001 =>12/10/2001

Comme je cherchais simplement à importer des données contenues dans des fichiers texte, j'ai appliqué la solution suivante :
MaDateLng = CLng(MaDate)
Le champ Access recevant la donnée étant du genre Date, la traduction se fait correctement dans la table.

Cordialement
CapDeBoro

PS pour Nix
Il se passe des choses bizares avec l'identification des messages : Dans la source « TUTORIAL POUR ADODB, ADO », mon message est attribué à quelqu'un d'autre, et celui d'une troisième personne m?est attribué ?
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.