(続き)accessでの2段階クエリの作り方
お世話になります。
accessで下記の質問を立てましたが、解決できなかったので再度質問いたします。
(http://okwave.jp/qa/q6890851.html)
下記に説明をしています、分かりにくいかもしれません。。
どうぞご指導をお願い致します。
◆DBの構成◆
1)テーブル名:名簿(フィールドは下記の通り)
ID,名前1、名前2(担当者名)、ふりがな、住所、電話、住所1、住所2(マンション名等)、備考等)
2)フォーム名:検索フォーム
デザインビューで初めから作成して、テキストボックスを1つ作っています。
名前は『キーワード検索ボックス1』です。
またテキストボックスの下に検索をしてヒットした名簿を表示するサブフォームを入れています。
3)サブフォームのクエリ
・元データ
⇒名簿のテーブル。全フィールドを挿入して作成。
メインフォーム内のサブフォーム名は『(sub)キーワード検索』
・抽出条件
⇒フィールドの『名前1』、『名前2』、『ふりがな』、『住所1』、『住所2』、『備考』の抽出条件欄に
1行ごとずらして、『Like & "*" & [Forms]![検索フォーム]![キーワード検索ボックス1] & "*"
とした。
・マクロ
⇒メインフォームのテキストボックスの隣に検索という名前をつけたボタンを配置。
マクロは再クエリでコントロール名を『(sub)キーワード検索』とした。
ボタンのプロパティのイベントタブでクリック時に上記のマクロが実行されるように登録した。
◆やりたい事◆
accessで会社の顧客名簿を作成しました。
今の状態は1個のキーワードだと検索結果がサブフォームに表示されます。
それを、2段階で絞りこんでいく方法を探しています。
テキストボックスをもう一個作り、2個のキーワードで絞りこみたいです。
まず、1個のキーワードで『名前1』、『名前2』、『ふりがな』、『住所1』、『住所2』、『備考』のフィールドを検索してヒットしたものをサブフォームで表示させる。さらにそこから、また任意のキーワードを
『キーワード検索ボックス2』に入力してボタンをクリックすると、同じサブフォーム(または別のフォームに)絞りこみ検索結果が表示されるようにしたい。またVBAは苦手なので、クエリで解決をしたいです。
◆出来たこと、出来なかった事◆
・質問NO(6890851)で指導を頂いた、chuparkさんのある一つのフィールドに
『Like "*" & [Forms]![検索フォーム]![名前検索1] & "*" And Like "*" & [Forms]![検索フォーム]![名前検索2] & "*"』と入れると、そのフィールドに対しては2個のキーワードがヒットするとサブフォームに表示される事が出来た。
⇒これだと1つのフィールドに対してなので、やりたい事ではない。
1つのフィールドだけでなく、検索したいフィールド全てに対してまず1個のキーワードで
検索されたものを表示させ、そこから更にキーワードを検索して表示させたい。
・クエリに新しいフィールドを作りました。そこは全てのフィールドを『&』で結び、
抽出条件にchuparkさんの条件を入れてました。
⇒これだと一度に2個のキーワードを検索してしまう。1回目と2回目を比較もしたいので、一度ではなく、段階を踏んで検索が出来ない。また、フォーム自体を開いた時にサブフォームが真っ白になり
メッセージも出て見辛い。。(どんなメッセージが忘れました…)
以上
お礼
おおっ、これです! ありがとうございます。良く眠れそうです。