Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
「パラメータが少なすぎます。0を指定してください」とエラーが 発生
投稿日時: 18/08/23 13:08:54
投稿者: けん太

 
 
パラメータークエリを基に、クロス集計クエリを作成後に
選択クエリを作成しおります。
 
 
その際に、[forms]![画面1]![テキストBOX1]と[forms]![画面1]![テキストBOX2]
の以下パラメータをパラメータークエリとクロス集計クエリに設定しています。
 
パラメーター : [Forms]![画面1]![テキストBOX1]
データ型   : パラメーターを指定するフィールドのデータ型を指定
パラメーター : [Forms]![画面1]![テキストBOX2]
データ型   : パラメーターを指定するフィールドのデータ型を指定
 
 
今回、OpenRecordsetで選択クエリを実行した所、
「パラメータが少なすぎます。0を指定してください」とエラーが
発生いたしました。
 
 
以下の情報を元に、ロジックを組んで対応をしていますが、
パラメータークエリとクロス集計クエリ分の記述はなくても
影響はないと言うことで、良いのでしょうか?
 
 
勉強の為、ご教授お願いいたします。
(VBAでは、画面の情報が分からないから、情報を指定していると思うのですが)
------------------------------------------------------------------
Dim db As DAO.Database
Dim qd As DAO.QueryDef
Dim rs As DAO.Recordset
  
Set db = CurrentDb
Set qd = db.QueryDefs("選択クエリ")
qd.Parameters("[forms]![画面1]![テキストBOX1]") = forms!画面1!テキストBOX1
qd.Parameters("[forms]![画面1]![テキストBOX2]") = forms!画面1!テキストBOX2
Set rs = qd.OpenRecordset

回答
投稿日時: 18/08/23 15:59:07
投稿者: sk

引用:
パラメータークエリを基に、クロス集計クエリを作成後に
選択クエリを作成しおります。

引用:
以下の情報を元に、ロジックを組んで対応をしていますが、
パラメータークエリとクロス集計クエリ分の記述はなくても
影響はないと言うことで、良いのでしょうか?

引用:
Set qd = db.QueryDefs("選択クエリ")
qd.Parameters("[forms]![画面1]![テキストBOX1]") = forms!画面1!テキストBOX1
qd.Parameters("[forms]![画面1]![テキストBOX2]") = forms!画面1!テキストBOX2
Set rs = qd.OpenRecordset

構造的にはクエリをクエリでネスト(入れ子に)しているのと同じですので、
事実上「パラメータークエリ/クロス集計クエリ上で定義されたパラメータに
任意の値を渡している」状態です。

投稿日時: 18/08/23 16:02:20
投稿者: けん太

 skさん
 
 解説、ありがとうございました。
 ひと安心です。