Rechercher d'une période à une période

Résolu
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023 - 10 avril 2017 à 13:26
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023 - 11 avril 2017 à 14:49
Bonjour,

je souhaiterais faire des recherches dans une base access, des données d'une période à une période et l'afficher dans une datagrid.
par exemple faire des recherches de données de janvier 2016 à mars 2017.
c'est un logiciel qui enregistre une personne avec sa date d'inscription.donc faire ressortir ceux qui sont inscrits de telle période à telle période .
a partir de ce code je voudrais construire l'application
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim dt As New DataTable
Dim ds As New DataSet
ds.Tables.Add(dt)
Dim da As New OleDbDataAdapter
con.Open()
da = New OleDbDataAdapter("SELECT dati,nom FROM employe where dati like '%" & TextBox1.Text & "%' or dati like '%" & TextBox2.Text & "%' order by dati ", con)
da.Fill(dt)
DataGridView1.DataSource = dt.DefaultView
con.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub

merci infiniment

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 avril 2017 à 15:47
Bonjour
Ton problème n'est pas un problème VB.Net, mais un problème de rédaction de requête.
On ne fait pas une requête d'une "période" à une autre "période", mais entre deux dates limites (du 1er janvier 2016 au 31 mars 2017 dans ton cas)
Intéresse-toi à l'utilisation de l'opérateur between
0
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023
10 avril 2017 à 17:22
ok, je vais essayer
0
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023
10 avril 2017 à 17:29
j'ai fait un essai avec cela.il me donne des résultats mais pas des résultats justes.c'est à dire si je recherche des infos de 12/2/2010 à 15/05/2014, il me fait aussi apparaître celles de 2016

 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Try


Dim datedebut As String = String.Format(TextBox2.Text, "dd/mm/yyyy")
Dim datefin As String = String.Format(TextBox3.Text, "dd/mm/yyyy")
Dim dt As New DataTable
Dim ds As New DataSet
ds.Tables.Add(dt)
Dim da As New OleDbDataAdapter
con.Open()
da = New OleDbDataAdapter("SELECT dati,nom FROM gloire where dati BETWEEN " & datedebut & "' and '" & datefin & "' order by dati asc ", con)
da.Fill(dt)
DataGridView1.DataSource = dt.DefaultView
con.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try




End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 avril 2017 à 22:07
Parce que tu compares des chaines de caractères au lieu de comparer des dates.
Il se trouve par exemple que "14/01/2010" est plus grand que "01/01/2020" alors que la date 14/01/2010 est plus petite que la date 01/01/2020
Mais cela, c'est le B.A.BA ...
#01/03/2014# est la notation d'une date. "01/03/2014" est une chaîne de caractères et non une date
0
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023
11 avril 2017 à 14:49
merci pour ton aide.cela m'aidé à finalisé le logiciel
0
Rejoignez-nous