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
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
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
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
10 avril 2017 à 17:22