Access 2007 には、VB 2010 を使用して接続している非常に単純なデータベースがあります。MenuItems と Orders の 2 つのテーブルがあり、Orders.orderDate は「Date」型です。
VB フォームの 1 つで次のコードを実行しています (接続文字列と他のすべては問題ありません)。
sql = "SELECT OrderDate, MenuItem FROM MenuItems, Orders WHERE Orders.itemID = MenuItem.ID AND Orders.orderDate BETWEEN '" + fromDate + "' AND '" + toDate + "'"
Dim cmd As New OleDb.OleDbCommand(sql, con)
Dim count As Integer = cmd.ExecuteNonQuery()
しかし、次のエラーが表示されます。
System.Data.OleDb.OleDbException (0x80040E10): value wan't given for one or more of the required parameters
何も欠けているようには見えません。SQLが異なることを除いて、別のクエリに同じコードを使用しました。しかし、私のSQLは十分に単純だと思います。1 つのインスタンスで生成された SQL を次に示します (再確認しましたが、すべてのテーブルと列の名前は正しいです)。
SELECT OrderDate, MenuItem From MenuItems, Orders WHERE Orders.itemID = MenuItem.ID AND Orders.orderDate BETWEEN '11/21/2012' AND '11/24/2012'