keunene
Messages postés72Date d'inscriptionsamedi 5 avril 2014StatutMembreDernière intervention10 mars 2023
-
10 avril 2017 à 13:26
keunene
Messages postés72Date d'inscriptionsamedi 5 avril 2014StatutMembreDernière intervention10 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 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
keunene
Messages postés72Date d'inscriptionsamedi 5 avril 2014StatutMembreDernière intervention10 mars 2023 10 avril 2017 à 17:22
keunene
Messages postés72Date d'inscriptionsamedi 5 avril 2014StatutMembreDernière intervention10 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 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
10 avril 2017 à 17:22