私は非常に単純な問題を抱えています。VB.NETフォームにいくつかの日付ピッカーコントロールがあり、ユーザーが「startDate」と「endDate」をorderDate
選択すると、ユーザーが選択した開始日と終了日の間にある関連テーブルのすべての行が表示されます。
関連するコードは次のとおりです。
Private Sub generate_report_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles generate_report.Click
Try
Dim con As New OleDb.OleDbConnection
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\KHMSDB.accdb"
con.Open()
Dim sql As String
Dim selected As String = ""
Dim ds As DataSet = New DataSet
Dim adapter As New OleDb.OleDbDataAdapter
sql = "SELECT OrderDate AS `Order Date and Time`, Items AS `Ordered Items` FROM Orders WHERE Format(Orders.OrderDate,'mm/dd/yyyy') >= #" + startDate.Value.Date + "# AND Format(Orders.OrderDate,'mm/dd/yyyy') <= #" + endDate.Value.Date + "#"
adapter.SelectCommand = New OleDb.OleDbCommand(sql, con)
adapter.Fill(ds)
gridReport.DataSource = ds.Tables(0)
Catch ex As Exception
MsgBox("Operation failed. " + ex.ToString)
End Try
今日の日付でデータベースに新しい行を保存し、「開始」と「終了」の両方の日付をデフォルトの日付(つまり今日の日付)のままにすると、保存したばかりの新しい行が表示されません。今日入力された新しい行は、「開始日」を11月30日まで移動した場合にのみ表示されます。次に、日付が12月12日の新しい行を追加します。繰り返しになりますが、終了日を12月12日以上に選択した場合は表示されません。開始日を12月1日まで移動した場合にのみ表示されます。11月21日の行を入力することにしました。11月21日に開始日と終了日の両方でクエリを実行すると、その行が表示されます。次に、1月8日に新しい行を入力しました。startDateを上に移動するか、endDateを下に移動するかの組み合わせでは、1月の順序が表示されません。どうしたの??私'