4

VBAコードを使用してクエリにアクセスしようとしています。私はこのように100回やったと思います。私のコード(コマンドボタン上)は次のように始まります:

Dim rstDocCount As Recordset

Set rstDocCount = CurrentDb.QueryDefs("DocCount").OpenRecordset

rst.MoveFirst

このエラーメッセージが表示されます:

実行時エラー「3061」:パラメーターが少なすぎます。期待される1。

Set rstDocCount線は黄色で強調表示されます。

私は何が間違っているのですか?唯一のパラメータはクエリの名前である必要があり、私は明らかにそれを持っています。

4

2 に答える 2

6

必要なもの:

Dim rstDocCount As Recordset
Dim qdf As QueryDef

    Set qdf = CurrentDb.QueryDefs("DocCount")

    qdf.Parameters("Forms!Boxing!BoxID") = Forms!Boxing!BoxID 
    Set rstDocCount = qdf.OpenRecordset

    rstDocCount.MoveFirst
于 2012-06-19T17:25:58.693 に答える
1

唯一のパラメータはクエリの名前である必要があり、私は明らかにそれを持っています。

このOpenRecordsetメソッドは3つのパラメーターを受け入れますTypeOptions; およびLockEdit。ただし、これら3つのパラメーターはすべてオプションであるため、「パラメーターが少なすぎる」エラーはOpenRecordsetパラメーターに関するものではありません。

代わりに、Remouが指摘したようにQueryDef、dbエンジンがクエリのソーステーブルで見つけられないもの(多くの場合、フィールド式)が含まれています。その場合、欠落しているものをパラメーターとして扱い、そのパラメーターの値を要求します。

于 2012-06-19T16:40:10.477 に答える