Probleme de format date pour un recherche entre deux dates

Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Dernière intervention
16 juin 2016
- - Dernière réponse :  Senegalese - 22 févr. 2016 à 02:19
Bonjour,
je reviens vers vous encore une fois pour présenter mon probléme;
alors j'ai une BDD access GESTION avec une table CLIENT et une datagridview pour l'affichage des résultats, j'ai un champs DateCreation avec format (jj/mm/aaaa) c'est à dire le format afficher dans les enregistrements est comme suit 01/01/2011. quand je fais une requette de recherche dans ma table sur access voilà la requette qui s'affiche :

SELECT client.datecreation FROM client WHERE (((client.datecreation ) Between #4/1/2011# And #4/1/2011#));

alors ici la date est affichée en format m/d/yyyy

pour mon code en vb 2005 c'est ecrit comme ça :
* pour infos : dans ma form VB j'ai deux maskedtexbox et un button

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

conn "provider microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\gestion.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = conn
cnx.Open()
End Sub

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

Dim date1 As Date
Dim date2 As Date

date1 = CDate(MaskedTextBox1.Text)
date2 = cdate(MaskedTextBox2.Text)

sql = "SELECT * FROM police WHERE deffet Betwenn #" & CDate(Format(date1, "dd/mm/yyyy")) & "# and #" & CDate(Format(date2, "dd/mm/yyyy"))

End Sub
alors j'ai entré:
le 01/03/2011 dans le maskestextbox1(comme date début)
le 01/04/2011 dans le maskestextbox2(comme date fin)

le message d'erreur que j'ai et le voilà :
La conversion de la chaîne "01/00/2011" en type 'Date' n'est pas valide.


j'espere que j'ai bien détaillé mon probleme
merci de me corriger le code ou de me dire ce qui ne va pas exactement dans toute cette salade
galaxy2009
Afficher la suite 

Votre réponse

6 réponses

Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
0
Merci
Salut

Pour ce genre de discussion (récurrente) sur le format des dates, tu aurais pu choisir des dates d'exemples représentatives : Une date comme 01/03/2011 ne nous dit pas, à première vue, quel est le format dd/mm/yyyy ou mm/dd/yyyy
Tu aurais dû choisir des jours > 12.

Je pense que c'est normal puisque CDate va tenter de former une date au format local, donc FR = dd/mm/yyy
Les dates, en SQL, sont au format mois/date/année.
Le texte que représente ta date est du texte dans ta requête SQL : suffit de la laisser en String :
... WHERE deffet Betwenn #" & Format(date1, "MM/dd/yyyy") & "# and ...
Nota : Les mois s'écrivent MM et pas mm --> voir l'aide

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
14319
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
11 décembre 2018
0
Merci
Bonjour,

VB.NET (selon le classement du message, et les procédure de gestion d'événement) :
Date.Parse(date1).ToString("M/d/yyyy")

Commenter la réponse de NHenry
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Dernière intervention
16 juin 2016
0
Merci
merci bcp pour vos réponses, ça marche j'ai pas d'erreur mais pas de résultat filtrée dans ma DATAGRIDVIEW, tout les enregistrements de ma table sont affichés
voilà le code pour l'affichage des résultats dans datagridview

datagridview1.Datasource= dataset.Tables("client")


galaxy2009
Commenter la réponse de galaxy2009
Messages postés
14319
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
11 décembre 2018
0
Merci
Bonjour,

Quelle est ta requête SQL résultant de tes claculs, as-tu vérifier que ça te retourne des données (en testant dans Access) ?

Commenter la réponse de NHenry
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Dernière intervention
16 juin 2016
0
Merci
Bonjour,
ma requette dans sql est bonne, j'ai d'autre datagridview dans d'autres form ça arche bien ma requette.

galaxy2009
Commenter la réponse de galaxy2009
Messages postés
14319
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
11 décembre 2018
0
Merci
Bonjour,

Quel est ton code, car si tu créé juste la requête SQL comme dans ton premier message, c'est normal.

Commenter la réponse de NHenry

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.