J'essaye donc de sélectionner un enregistrement avec une plage de dates spécifique ex. 21/05/2019 - 30/05/2019 et mettez les enregistrements dans un datagridview.
J'utilise Ms. Access et je ne sais pas grand chose sur SQL.
DA = New OleDb.OleDbDataAdapter("SELECT * FROM table where date >= " & DateValue(FirstDate) & " AND date <= " & DateValue(SecondDate) & "", conn) DS = New DataSet DS.Clear() DA.Fill(DS, "table") DataGridView1.DataSource = DS.Tables("table")
3 Réponses :
SELECT ID FROMTestInfo WHERE CapturedDate ENTRE "2012-03-27" ET "2012-03-28"
vous utilisez une mauvaise manière dans la requête SQL. veuillez essayer de cette façon.
passez par le lien pour plus d'informations codeproject.com/Tips/355235/…
Dans MS Access, le délimiteur de date est un hachage (#).
Vous devez donc changer votre requête en:
"Select * FROM table WHERE [Date] Between #" & DateValue(FirstDate) & "# and #" & DateValue(SecondDate) & "#";
Ou vous utilisez l'opérateur between:
"SELECT * FROM table where date >= #" & DateValue(FirstDate) & "# AND date <= #" & DateValue(SecondDate) & "#"
Une meilleure façon de gérer cela est d'utiliser simplement des paramètres qui sont généralement recommandés par de nombreux programmeurs.
da = New OleDb.OleDbDataAdapter("SELECT * FROM table where date >= @StartDate AND date <= @EndeDate ", conn) 'If you show how you declare and set FirstDate and SecondDate we can drop the DateValue function' da.SelectCommand.Parameters.Add("@StartDate", OleDb.OleDbType.Date).Value = DateValue(FirstDate) da.SelectCommand.Parameters.Add("@EndeDate", OleDb.OleDbType.Date).Value = DateValue(SecondDate) ds = New DataSet DS.Clear() DA.Fill(DS, "table") DataGridView1.DataSource = DS.Tables("table")