本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[ACC2] モジュール実行時のエラー

文書番号: 403932

最終更新日: 1997/11/05


この資料は以下の製品について記述したものです。

この記事は、以前は次の ID で公開されていました: JP403932

概要

モジュールでクエリーからダイナセットを作成する時に、「 1 個のパラメータが必要です。0 個のパラメータしかありません。」というエラーが発生することがあります。このエラーはパラメータの設定が正しくできていない場合に発生します。ここでは、モジュールで OpenRecordset メソッドを使いクエリーから、レコードセットを作成する場合に、上記エラーをださないようにする方法を紹介します。

現象

パラメータクエリーからレコードセットを作成するには、予めパラメータに値を設定しておく必要があります。パラメータの設定は、QueryDefs コレクションから QueryDefオブジェクトを開き、Parameters コレクションに値を設定します。そのあとで、OpenRecordset メソッドでレコードセットを作成します。

■ パラメータ クエリーの作成

サンプルデータベースの NWIND.MDB ファイルの中の、[社員リスト] クエリーをパラメータクエリーに変更します。
  1. [社員リスト] クエリーをデザインビューで開きます。
  2. QBE グリッドの [社員コード] フィールドの抽出条件に次のように設定します。
  3. [選択コード]
  4. [クエリー] - [パラメータ] コマンドを選択します。[変数の定義] と [データ型] を設定します。
          変数の定義      データ型
          [選択コード]    長整数型
    

■ プロシージャの作成

  1. 1.データベース ウィンドウで [ファイル] - [新規] - [モジュール] コマンドを選択するか、データベース ウィンドウの <モジュール> ボタンをクリックし、<新規作成> ボタンをクリックします。
  2. [編集] - [新規プロシージャ] コマンドを選択するか、ツールバーの <プロシージャ作成> ボタンをクリックします。
  3. [プロシージャの新規作成] ダイアログ ボックスの [種類] で"Function"を選択します。[名前] でプロシージャ名 (Test) を入力します。
  4. 4.以下のサンプルプロシージャを入力します。

■ サンプル プロシージャ

以下の例では、 [社員リスト] クエリー から、レコードセットを作成します。
[社員リスト] クエリーの抽出条件に設定しているパラメータ [選択コード] は、[社員] フォーム上の [社員コード] テキストボックスの値を参照します。
  -----------------------------------------------------------------------------
  Function Test ()
      Dim MyDB As Database, MyQuery  As QueryDef, MyRecordset  As Recordset
      Set MyDB = DBEngine(0)(0)
              'QueryDef オブジェクトを編集のために開きます。
      Set MyQuery = MyDB.Querydefs("社員リスト")
              'ここでクエリーのパラメータに値を設定します。
      MyQuery.Parameters("選択コード") = Forms![社員]![社員コード]
              'レコードセットを作成します。
      Set MyRecordset = MyQuery.OpenRecordset()
      MyQuery.Close
  End Function
  -----------------------------------------------------------------------------

Keywords: KBINFO KB403932
Technology: kbAccessSearch

inserted by FC2 system