Rechercher d'une période à une période [Résolu]

Signaler
Messages postés
61
Date d'inscription
samedi 5 avril 2014
Statut
Membre
Dernière intervention
7 septembre 2018
-
Messages postés
61
Date d'inscription
samedi 5 avril 2014
Statut
Membre
Dernière intervention
7 septembre 2018
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
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
Messages postés
61
Date d'inscription
samedi 5 avril 2014
Statut
Membre
Dernière intervention
7 septembre 2018

ok, je vais essayer
Messages postés
61
Date d'inscription
samedi 5 avril 2014
Statut
Membre
Dernière intervention
7 septembre 2018

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
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
Messages postés
61
Date d'inscription
samedi 5 avril 2014
Statut
Membre
Dernière intervention
7 septembre 2018

merci pour ton aide.cela m'aidé à finalisé le logiciel