- ベストアンサー
Access 2段階のクエリの作り方
- Access2000での標記について質問です。会社で顧客名簿を改良しています。『名簿一覧』というメインテーブルがあり、名前、住所、電話、住所等のフィールドがあります。検索が簡単に出来るように任意のフォームにテキストボックスを1個作成して、そのボックスにキーワードを入力すると名前、ふりがな等のほぼ全てのフィールドであいまい検索されるクエリを作成しています。そして、その結果はテキストボックスの下にサブフォームで検索結果が表示されます。
- 上記のキーワード検索した後、更に検索をかけるにはどうすればいいのでしょうか。検索はまたキーワードでの検索をしたいです。またVBAの知識がないので、クエリで解決したいです。
- Access2000での標記について質問です。会社で顧客名簿を改良しています。検索が簡単に出来るように任意のフォームにテキストボックスを1個作成して、キーワードを入力すると名前、ふりがな等のほぼ全てのフィールドであいまい検索されるクエリを作成しました。解決方法が知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
再度の回答です。 効率のよいやり方かどうか自信はありませんが…。 たとえば、 検索用のフォームを「検索フォーム」、サブフォームに使うフォームを「名簿検索フォーム」とします。 検索フォームの方へ、名前の検索キーワードを入力するテキストボックス「名前検索1」と「名前検索2」を作成します。 クエリはテーブル「名簿一覧」から作成しますが、 フィールドとして、ID、名前、住所、電話をテーブルから追加し、 抽出条件として、名前フィールドに Like "*" & [Forms]![検索フォーム]![名前検索1] & "*" And Like "*" & [Forms]![検索フォーム]![名前検索2] & "*" を設定しました。 単純に、1つのフィールドに対して2つの検索用テキストボックスから条件を得るだけ ではありますが、一応検索はできるような気がします。 いかがでしょうか。 ちなみに、VBAを使わずにということですが、 フォームで検索ワードを入力した後、サブフォームを更新する時はどうされているのでしょうか。 上の例でならば、マクロを作成し、アクション:再クエリ コントロール名:名簿検索フォーム(注)として、 コマンドボタンへそのマクロを登録すればできました。 (注) ここでの名簿検索フォームは、フォームの名前ではなく、検索フォーム上にある、サブフォームにつけた名称です。 例ではたまたま同じ名前を採用しました。
その他の回答 (2)
- chupark
- ベストアンサー率41% (90/218)
親フォームを仮に"Form1"、 名前の検索用テキストボックスを"txtName1"とします。 サブフォームの方のクエリは 名簿一覧からクエリを作成し、 名前フィールドの抽出条件として、 Like & "*" & [Forms]![Form1]![txtName1] & "*" のように、クエリの抽出条件へフォームの値を使うように設定すれば抽出できます。 この上に、さらに絞込みを行いたい、ということでしょうか。 たとえば、上のクエリで抽出した結果を一時的なテーブルへ出力(テーブル作成クエリにするなど)して、そこへ同様にクエリをかけるという方法もあると思います。 もしくは、Form1にもうひとつ絞り込み用のテキストボックス"txtName2"をつくり、 サブフォームのクエリに名前フィールドをもうひとつ作成して、 Like & "*" & [Forms]![Form1]![txtName2] & "*" などと抽出条件を設定するとか…。 "さらに検索をかける"のをどのように実現したいのかによって手段は変わるのではないでしょうか。
補足
chupark様 おはようございます。 早速のご回答を頂きましてありがとうございます。 名簿一覧からクエリを作成し・・・・この上に、さらに絞込みを行いたい、ということでしょうか。 ⇒はい、そうです。 作成したクエリはchupark様がおっしゃった様に likeをほぼ全てのフィールド(住所、名前、会社名、メモ欄等)に式を入力しています。 やりたい事はForm1にもうひとつの絞込み用のテキストボックスを使ってやりたいのです。 そこで回答を頂いた、下記について質問です。 サブフォームのクエリに名前フィールドをもうひとつ作成して、 Like & "*" & [Forms]![Form1]![txtName2] & "*" ⇒名前フィールドをもうひとつ作成するとは、 Like & "*" & [Forms]![Form1]![txtName1] & "*"と入力したフィールドを もう一度クエリの抽出条件に入れるということでしょうか? いつでも構いませんので、ご指導を頂ければ幸いです。
- bin-chan
- ベストアンサー率33% (1403/4213)
サブフォームの見出し行の項目名を右クリックして、フィルタを利用する。
補足
やってみたのですが、出来ませんでした。。。 改めて、新しい質問をたてます。 色々とありがとうございました!!