Aider moi svp

Signaler
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016
-
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
-
Bonjour,
comment je peux effectuer une recherche entre deux dates et afficher le résultat dans datagridview.
j'ai une BDD access et je veux utiliser deux maskedtextbox comme suit
du : date dans maskedtextbox1
au : date dans maskedtextbox2

bon j'ai posé ma question hier mais je n'ai qu'une réponse de Mr Henry, que je remercie bcp, mais j'ai rien pigé puisque je suis débutant.
je veux le code que je dois écrire dans le Form_Load et le code que je dois écrire dans le button1 qui pour information qui gére l'affichage du résultat dans le datagridview.

merci bcp pour votre aide et c très urgent.


galaxy2009

27 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

Pourtant NHenry t'a répondu clairement.
C'est à toi de faire les recherhes à partir des éléments qui te sont fournis.

Autre solution de syntaxe SQL :
"... Where monChamp Between #" + MaDateHaute.ToString("MM/dd/yyyy") + "# " + _
                       "AND #" + MaDateBasse.ToString("MM/dd/yyyy") + "#" 

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)
[img]http://allproj
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour jack,
voilà mon code dans le button click, si vous pouvez me corriger.
* Obsv: la date que j'ai dans ma base est de type dd/mm/yyyy

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.ToString)
date2 = CDate(MaskedTextBox2.Text.ToString)

sql = "select police.*from police where deffet Betwenn # " + date1.ToString("dd/mm/yyyy") + " #" And "# " + date2.ToString("dd/mm/yyyy") + " #"""
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
dta.Fill(dts, "police")
dtt = dts.Tables("police")
DataGridView1.DataSource = dts.Tables("police")
DataGridView1.AutoResizeColumns()

End Sub


galaxy2009
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
A t'as place j’afficherais date1 et 2 pour être sur que la req. et juste donc

Dim date1 As Date
Dim date2 As Date
date1 = CDate(MaskedTextBox1.Text.ToString)
date2 = CDate(MaskedTextBox2.Text.ToString)

msgbox date1
msgbox date2


Si date 1 et 2 sont corrects alors tu pourrais changé ta req comme ce-ci


sql = "select * from police where deffet Betwenn '" & date1.ToString("dd/mm/yyyy") & "' " And " '" & date2.ToString("dd/mm/yyyy") & "'"

Il faut que tu nous dise le message d'erreur que tu reçois est ou
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

bonjour,
merci 4u4me4us pour ta réponse voilà le message d'erreur que j'ai après débogage :

La conversion de la chaîne "select * from police where deffe" en type 'Long' n'est pas valide.

galaxy2009
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
G pas placé le # teste cela et le between tu l'as tapé faux

sql = "select * from police where deffet between #" & date1.ToString("dd/mm/yyyy") & "# " And " #" & date2.ToString("dd/mm/yyyy") & "#;"

Teste comme cela et redis nous
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour,
toujours le meme message d'erreur


galaxy2009
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
deffet et de qu'elle type? (Sois sur de ta réponse)
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour,
deffet dans ma BDD est de type Date/Heure avec format Date, abrégé 01/01/2011


galaxy2009
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
si tu mets les date directement

sql = "select * from police where deffet between #01/01/2010# And #01/01/2011#;"

Il dit quoi ?
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour,
cette fois pas de message d'erreur mais ma datagridview est vide pas de résultat
galaxy2009
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
T variable date sont fausses. C pour ça que ta requête marche sont elles. Il faut que tu réétudie cela tien nous au courant après.
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

Bonjour,
est ce que vous pouvez éclaircir, mes variables dates sont fausses.

galaxy2009
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
date1.ToString("dd/mm/yyyy")
date2.ToString("dd/mm/yyyy")

n'ont pas des bonnes valeur, c pour cela que quand tu les utilise tu as un message d'erreur.

Il faut corriger cela
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

alors qu'est ce que je dois faire.

galaxy2009
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Teste un truc genre

date1 = format(CDate(MaskedTextBox1.Text.ToString),"dd/mm/yyyy")

et supprimer ton date1.tostring(dd/....)

Aussi si ça ne marche pas il n'est pas utile que tu me demande dans 5 min que dois-je faire???

Tu c ou est le problème cherche un peut tu touverras
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

rien ne marche,
mais je vous remercie infiniment pour tout le temps consacrer à mon problème.
j'éspére que vous restez sur mon problmeme s'il y a des nouvelles

galaxy2009
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Je peux encore te proposé de modifier ton code de la façon suivante

Dim date1 As Date
Dim date2 As Date
date1 = format(CDate(MaskedTextBox1.Text.ToString),"dd/mm/yyyy")
date2 = format(CDate(MaskedTextBox2.Text.ToString),"dd/mm/yyyy")

Set Db = OpenDatabase(CHEMAIN COMPLET DE TA BASE DE DONNEE ACCESS, false, False)
Set vo_info = Db.OpenRecordset("SELECT * FROM NOM DE LA TABLE where deffet Betwenn #01/01/1900# And #01/01/2100#") 

DataGridView1.DataSource = vo_info("police").value
DataGridView1.AutoResizeColumns()
vo_info.close
db.close
Set vo_info = nothing
Set Db = nothing
End Sub 


Tu as vu g pas utiliser les var date1 et 2 car je pense qu'il faut tout d'abord que req. fonctionne avant de mettre des var.
Il faut avoir la référence DAO, ADO est plus moderne mais voila j'ai cette exemple à te donner a toi de l'adapter.
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Encore une chose dans la ligne qui suit
OpenDatabase(CHEMAIN COMPLET DE TA BASE DE DONNEE ACCESS, false, False)

j'ai mis deux fois false car je ne sais pas qu'elles sont les paramètre les mieux pour toi. Tout les trouveras tous sur les net.
Messages postés
144
Date d'inscription
dimanche 24 avril 2011
Statut
Membre
Dernière intervention
16 juin 2016

je sais pas quoi dire mais merci 1000 fois, je teste et je te fais part du résultat.
à toute

galaxy2009
Messages postés
268
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
19 janvier 2017
2
Autant que je me souvienne, les anciennes versions de Microsoft Access étaient réticentes à la lecture des dates au format #dd/mm/yyyy#, essayez plutôt le format Anglais #mm/dd/yyyy# pour obtenir une interprétation correcte des dates en SQL.

Bon courage!