access2003を使用しています。
テーブルの読込で「Set rs2 = db.OpenRecordset("テーブル名")」のように、
テーブルを一件ずつ読込むのは成功しました。
しかし、今ここに自分で作成したクエリをいれたいのですが、色々調べたところ
クエリをテーブルの様に一件一件読込んで使用するには、
パラーメーターというのを設定しないといけないということが分かりました。
そして下記のように書きましたが、エラーが出てきてしまいます。
「Q_1件ずつ読込みたいクエリ」にはちゃんと「伝票日付」という項目があります。
なのに、「実行時エラー3265 このコレクションには項目がありません。」
と出てきてしまいます。
原因は何でしょうか?
ちなみに
「Q_1件ずつ読込みたいクエリ」には「伝票日付」という項目に
between [Forms]![フォーム画面]![抽出基準日_始] and [Forms]![フォーム画面]![抽出基準日_終]
という抽出条件が入っています。
なので、ここにパラーメータークエリを入れようとエラーが発生している処理を書いています。
よろしくお願いします。
パラメータ1つに値は1つよ。
qd.Parameters("抽出基準日_始") = pr1 qd.Parameters("抽出基準日_終") = pr2
「伝票日付」という項目に
between [Forms]![フォーム画面]![抽出基準日_始] and [Forms]![フォーム画面]![抽出基準日_終]
betweenやandのようなSQL文はすでに「Q_1件ずつ読込みたいクエリ」に書かれてるんだから必要なパラメータは抽出基準日_始と抽出基準日_終の2つってことよ。
between 抽出基準日_始 and 抽出基準日_終
ソースは以下の通りです。
Dim db As DAO.Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim qd As DAO.QueryDef
Dim pr1 As Date
Dim pr2 As Date
Set db = CurrentDb
Set qd = db.QueryDefs("Q_1件ずつ読込みたいクエリ")
pr1 = [Forms]![フォーム画面]![抽出基準日_始]
pr2 = [Forms]![フォーム画面]![抽出基準日_終]
qd.Parameters("伝票日付").Value = "Between " & pr1 & " And " & pr2 ←ここでエラーが発生
Set rs1 = qd.OpenRecordset
Set rs2 = db.OpenRecordset("テーブル名")
Do Until rs1.EOF
rs2.AddNew
rs2!表示順 = rs1!表示順
rs2.Update
rs1.MoveNext
Loop