人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

accessのDAOの質問です。
access2003を使用しています。
テーブルの読込で「Set rs2 = db.OpenRecordset("テーブル名")」のように、
テーブルを一件ずつ読込むのは成功しました。

しかし、今ここに自分で作成したクエリをいれたいのですが、色々調べたところ
クエリをテーブルの様に一件一件読込んで使用するには、
パラーメーターというのを設定しないといけないということが分かりました。

そして下記のように書きましたが、エラーが出てきてしまいます。
「Q_1件ずつ読込みたいクエリ」にはちゃんと「伝票日付」という項目があります。
なのに、「実行時エラー3265 このコレクションには項目がありません。」
と出てきてしまいます。

原因は何でしょうか?
ちなみに
「Q_1件ずつ読込みたいクエリ」には「伝票日付」という項目に
between [Forms]![フォーム画面]![抽出基準日_始] and [Forms]![フォーム画面]![抽出基準日_終]

という抽出条件が入っています。
なので、ここにパラーメータークエリを入れようとエラーが発生している処理を書いています。
よろしくお願いします。


●質問者: syo777
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

質問者から

ソースは以下の通りです。
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


1 ● snow0214
●50ポイント

Parameterコレクションの渡し方を以下のようにしてみて下さい。

qd.Parameters("伝票日付") = "Between " & pr1 & " And " & pr2

syo777さんのコメント
こちらでは上手く動きませんでした><

2 ● 井戸端さん
●125ポイント ベストアンサー

パラメータ1つに値は1つよ。

qd.Parameters("抽出基準日_始") = pr1
qd.Parameters("抽出基準日_終") = pr2

「伝票日付」という項目に
between [Forms]![フォーム画面]![抽出基準日_始] and [Forms]![フォーム画面]![抽出基準日_終]

betweenやandのようなSQL文はすでに「Q_1件ずつ読込みたいクエリ」に書かれてるんだから必要なパラメータは抽出基準日_始と抽出基準日_終の2つってことよ。

between 抽出基準日_始 and 抽出基準日_終

syo777さんのコメント
ありがとうございます!! 処理が上手くいきました^^

3 ● gizmo5
●125ポイント
between [Forms]![フォーム画面]![抽出基準日_始] and [Forms]![フォーム画面]![抽出基準日_終]

定義済みクエリには上記のように書いてあるわけですから、パラメータクエリに条件をセットするのは以下のようになります。

pr1 = [Forms]![フォーム画面]![抽出基準日_始]
pr2 = [Forms]![フォーム画面]![抽出基準日_終]

' qd.Parameters("伝票日付").Value = "Between " & pr1 & " And " & pr2 ←ここでエラーが発生
qd.Parameters("[Forms]![フォーム画面]![抽出基準日_始]") = pr1
qd.Parameters("[Forms]![フォーム画面]![抽出基準日_終]") = pr2

syo777さんのコメント
ありがとうございます!! 処理が上手くいきました^^
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ