Aider moi svp

galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016 - 10 mai 2011 à 02:41
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 - 17 mai 2011 à 12:00
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 mai 2011 à 12:01
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
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
10 mai 2011 à 14:51
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
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
11 mai 2011 à 10:39
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
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
11 mai 2011 à 15:09
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
11 mai 2011 à 15:18
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
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
11 mai 2011 à 17:44
Bonjour,
toujours le meme message d'erreur


galaxy2009
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
12 mai 2011 à 11:28
deffet et de qu'elle type? (Sois sur de ta réponse)
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
12 mai 2011 à 12:29
Bonjour,
deffet dans ma BDD est de type Date/Heure avec format Date, abrégé 01/01/2011


galaxy2009
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
12 mai 2011 à 12:51
si tu mets les date directement

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

Il dit quoi ?
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
12 mai 2011 à 12:58
Bonjour,
cette fois pas de message d'erreur mais ma datagridview est vide pas de résultat
galaxy2009
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
12 mai 2011 à 13:03
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.
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
12 mai 2011 à 13:06
Bonjour,
est ce que vous pouvez éclaircir, mes variables dates sont fausses.

galaxy2009
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
12 mai 2011 à 13:13
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
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
12 mai 2011 à 13:20
alors qu'est ce que je dois faire.

galaxy2009
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
12 mai 2011 à 13:42
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
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
12 mai 2011 à 14:07
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
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
12 mai 2011 à 14:25
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.
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
12 mai 2011 à 14:27
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.
0
galaxy2009 Messages postés 144 Date d'inscription dimanche 24 avril 2011 Statut Membre Dernière intervention 16 juin 2016
12 mai 2011 à 14:45
je sais pas quoi dire mais merci 1000 fois, je teste et je te fais part du résultat.
à toute

galaxy2009
0
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
12 mai 2011 à 14:57
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!
0
Rejoignez-nous