プロが教えるわが家の防犯対策術!

お世話になります。
Access2000での標記について質問です。

会社で顧客名簿を改良しています。
『名簿一覧』というメインテーブルがあり、名前、住所、電話、住所等のフィールドがあります。
検索が簡単に出来るように任意のフォームにテキストボックスを1個作成して、
そのボックスにキーワードを入力すると名前、ふりがな等のほぼ全てのフィールドで
あいまい検索されるクエリを作成しています。
そして、その結果はテキストボックスの下にサブフォームで検索結果が表示されます。

上記のキーワード検索した後、更に検索をかけるにはどうすればいいのでしょうか。
検索はまたキーワードでの検索をしたいです。
またVBAの知識がないので、クエリで解決したいです。
よろしくお願いします!!

A 回答 (3件)

サブフォームの見出し行の項目名を右クリックして、フィルタを利用する。

    • good
    • 0

親フォームを仮に"Form1"、


名前の検索用テキストボックスを"txtName1"とします。

サブフォームの方のクエリは

名簿一覧からクエリを作成し、
名前フィールドの抽出条件として、
Like & "*" & [Forms]![Form1]![txtName1] & "*"
のように、クエリの抽出条件へフォームの値を使うように設定すれば抽出できます。

この上に、さらに絞込みを行いたい、ということでしょうか。

たとえば、上のクエリで抽出した結果を一時的なテーブルへ出力(テーブル作成クエリにするなど)して、そこへ同様にクエリをかけるという方法もあると思います。

もしくは、Form1にもうひとつ絞り込み用のテキストボックス"txtName2"をつくり、
サブフォームのクエリに名前フィールドをもうひとつ作成して、
Like & "*" & [Forms]![Form1]![txtName2] & "*"
などと抽出条件を設定するとか…。

"さらに検索をかける"のをどのように実現したいのかによって手段は変わるのではないでしょうか。

この回答への補足

chupark様

おはようございます。
早速のご回答を頂きましてありがとうございます。


名簿一覧からクエリを作成し・・・・この上に、さらに絞込みを行いたい、ということでしょうか。
⇒はい、そうです。
 作成したクエリはchupark様がおっしゃった様に
 likeをほぼ全てのフィールド(住所、名前、会社名、メモ欄等)に式を入力しています。
 やりたい事はForm1にもうひとつの絞込み用のテキストボックスを使ってやりたいのです。
 そこで回答を頂いた、下記について質問です。


サブフォームのクエリに名前フィールドをもうひとつ作成して、
Like & "*" & [Forms]![Form1]![txtName2] & "*"
⇒名前フィールドをもうひとつ作成するとは、
 Like & "*" & [Forms]![Form1]![txtName1] & "*"と入力したフィールドを
 もう一度クエリの抽出条件に入れるということでしょうか?

 いつでも構いませんので、ご指導を頂ければ幸いです。

補足日時:2011/07/25 07:58
    • good
    • 0

再度の回答です。



効率のよいやり方かどうか自信はありませんが…。

たとえば、
検索用のフォームを「検索フォーム」、サブフォームに使うフォームを「名簿検索フォーム」とします。
検索フォームの方へ、名前の検索キーワードを入力するテキストボックス「名前検索1」と「名前検索2」を作成します。

クエリはテーブル「名簿一覧」から作成しますが、
フィールドとして、ID、名前、住所、電話をテーブルから追加し、
抽出条件として、名前フィールドに
Like "*" & [Forms]![検索フォーム]![名前検索1] & "*" And Like "*" & [Forms]![検索フォーム]![名前検索2] & "*"
を設定しました。

単純に、1つのフィールドに対して2つの検索用テキストボックスから条件を得るだけ
ではありますが、一応検索はできるような気がします。
いかがでしょうか。

ちなみに、VBAを使わずにということですが、
フォームで検索ワードを入力した後、サブフォームを更新する時はどうされているのでしょうか。
上の例でならば、マクロを作成し、アクション:再クエリ コントロール名:名簿検索フォーム(注)として、
コマンドボタンへそのマクロを登録すればできました。

(注) ここでの名簿検索フォームは、フォームの名前ではなく、検索フォーム上にある、サブフォームにつけた名称です。
   例ではたまたま同じ名前を採用しました。

この回答への補足

やってみたのですが、出来ませんでした。。。
改めて、新しい質問をたてます。

色々とありがとうございました!!

補足日時:2011/08/04 21:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!