文書番号: 403029
最終更新日: 1997/11/01
この資料は以下の製品について記述したものです。
- Microsoft(R) Access for Windows(R) version 2.0 (以下 Access2.0)
- Microsoft(R) Access for Windows(R) version 1.1 (以下 Access1.1)
この記事は、以前は次の ID で公開されていました: JP403029
概要
選択クエリーの抽出条件は、固定のデータだけではなく フォームのコントロールを参照して該当データを抽出することができます。抽出条件になるフォームのテキストボックスが複数ある場合、入力した抽出条件のみを有効にして、入力されない抽出条件は全件抽出として扱う方法を紹介します。
操作方法
サンプルデータベース NWIND.MDB の [商品] テーブルを元にして、フォームの [仕入先コード条件]、[区分コード条件] の 2 つのテキストボックスを抽出条件にするクエリーを作成します。
-
無地フォームを新規に作成します。 無地フォームは [ フォームの新規作成 ] ダイアログボックスで [テーブル/クエリーの選択 (T) ] になにも設定せずに、[ 無地フォーム (B) ] ボタンをクリックします。
-
フォームのデザインビューで、ツールボックスから 非連結のテキストボックスを 2つ貼り付けます。各テキストボックスの [ 名前/Name ] プロパティをそれぞれ「仕入先コード条件」と「区分コード条件」とします。プロパティ シートを表示するにはテキストボックス上でマウスをダブル クリックしてください。
-
フォームを [ フォーム 1 ] として保存します。
-
[商品] テーブルを元にして、クエリーを新規に作成します。
-
クエリーのデザインビューで、QBE グリッドに必要なフィールドを設定します。ここでは、[仕入先コード]、[区分コード]、[商品名]、[単価] フィールドを QBE グリッドに設定します。
![[GRAPHIC: ]](JP403029A.gif)
-
クエリーのデザインビューで QBE グリッドの空いている列に、フォームのテキストボックスを参照して、IIf 関数でテキストボックスボックスに入力されたかどうか (IsNull 関数) を判断し、入力がない場合は 全件抽出とする式を設定します。式を入力する際、 フォーカスを入力する箇所に移動し、Shift+F2 を押すと [ズーム] ボックスが表示されます。
フィールド: 式1: IIf ( IsNull([Forms]![フォーム 1]![仕入先コード条件]),
True, [仕入先コード] = [Forms]![フォーム 1]![仕入先コード
条件])
表示 : □ (チェックボックスのチェックを外します。)
抽出条件 : True
フィールド: 式2 : IIf ( IsNull([Forms]![フォーム 1]![区分コード条件]),
True, [区分コード] = [Forms]![フォーム 1]![区分コード条件])
表示 : □ (チェックボックスのチェックを外します。)
抽出条件 : True
-
クエリーを [クエリー 1] として保存します。
-
[ フォーム 1 ] をフォームビューで開きます。2 つのテキストボックスに抽出条件を入力し、[ クエリー 1 ] を開くと、該当データがデータシートビューに表示されます。再度、フォームの抽出条件を入力し、フォーカスをクエリーのデータシートビューに移動して、Shift + F9 を押すとクエリーは該当データを表示します。
解 説
[クエリー 1] のデザインビューで、式2 の抽出条件 "True" を [または] の行に設定すると、2 つの抽出条件は、AND 条件ではなく OR 条件になります。
Keywords: KBHOWTO KB403029
Technology: kbAccess200 kbAccessSearch