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

[ACC1,2]フォームから入力した抽出条件のみ有効にしてデータを抽出する

文書番号: 403029

最終更新日: 1997/11/01


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

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

概要

選択クエリーの抽出条件は、固定のデータだけではなく フォームのコントロールを参照して該当データを抽出することができます。抽出条件になるフォームのテキストボックスが複数ある場合、入力した抽出条件のみを有効にして、入力されない抽出条件は全件抽出として扱う方法を紹介します。

操作方法

サンプルデータベース NWIND.MDB の [商品] テーブルを元にして、フォームの [仕入先コード条件]、[区分コード条件] の 2 つのテキストボックスを抽出条件にするクエリーを作成します。
  1. 無地フォームを新規に作成します。 無地フォームは [ フォームの新規作成 ] ダイアログボックスで [テーブル/クエリーの選択 (T) ] になにも設定せずに、[ 無地フォーム (B) ] ボタンをクリックします。
  2. フォームのデザインビューで、ツールボックスから 非連結のテキストボックスを 2つ貼り付けます。各テキストボックスの [ 名前/Name ] プロパティをそれぞれ「仕入先コード条件」と「区分コード条件」とします。プロパティ シートを表示するにはテキストボックス上でマウスをダブル クリックしてください。
  3. フォームを [ フォーム 1 ] として保存します。
  4. [商品] テーブルを元にして、クエリーを新規に作成します。
  5. クエリーのデザインビューで、QBE グリッドに必要なフィールドを設定します。ここでは、[仕入先コード]、[区分コード]、[商品名]、[単価] フィールドを QBE グリッドに設定します。
    [GRAPHIC: ]
  6. クエリーのデザインビューで QBE グリッドの空いている列に、フォームのテキストボックスを参照して、IIf 関数でテキストボックスボックスに入力されたかどうか (IsNull 関数) を判断し、入力がない場合は 全件抽出とする式を設定します。式を入力する際、 フォーカスを入力する箇所に移動し、Shift+F2 を押すと [ズーム] ボックスが表示されます。
         フィールド: 式1: IIf ( IsNull([Forms]![フォーム 1]![仕入先コード条件]),
                      True, [仕入先コード] = [Forms]![フォーム 1]![仕入先コード
                      条件])
         表示      : □ (チェックボックスのチェックを外します。)
         抽出条件  : True
         フィールド: 式2 : IIf ( IsNull([Forms]![フォーム 1]![区分コード条件]),
                      True, [区分コード] = [Forms]![フォーム 1]![区分コード条件])
         表示      : □ (チェックボックスのチェックを外します。)
         抽出条件  : True
    
  7. クエリーを [クエリー 1] として保存します。
  8. [ フォーム 1 ] をフォームビューで開きます。2 つのテキストボックスに抽出条件を入力し、[ クエリー 1 ] を開くと、該当データがデータシートビューに表示されます。再度、フォームの抽出条件を入力し、フォーカスをクエリーのデータシートビューに移動して、Shift + F9 を押すとクエリーは該当データを表示します。

解 説

[クエリー 1] のデザインビューで、式2 の抽出条件 "True" を [または] の行に設定すると、2 つの抽出条件は、AND 条件ではなく OR 条件になります。

Keywords: KBHOWTO KB403029
Technology: kbAccess200 kbAccessSearch

inserted by FC2 system