- 締切済み
Accessでの検索
Accessで文書を管理するシステムを作成しているのですが、検索フォームの作成がうまくいきません。どのような検索が行いたいかといいますと、複数の条件をコンボボックスで指定して、それに対する検索を行うといった形を取りたいのです。1つの項目に対する検索はできるのですが、複数になるとどのようにすればいいのかわかりません。どなたか教えてください。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
> 複数の条件をコンボボックスで指定して これは、例えばコンボボックスに表示される りんご みかん バナナ の中から、「りんご」と「バナナ」の両方を選択したいという意味ですか? だとしたら、コンボボックスでは出来ません。 リストボックスなら可能です。 的はずれだったら、ゴメンナサイ。
- moon_myu
- ベストアンサー率33% (39/118)
なんか前にも経験したような。。。。マクロを実行しても画面が変化しなかったような。。。。? その時は、 ※)複数の項目のフィルタを掛ける場合は、マクロの作成で(例えば検索2) と名前を付け、アクションに「フィルタの実行」を作ります。 の後に、次の行のアクションに「コマンドの実行」 コマンドの中の「最新の情報に更新」を追加して対処出来たと 記憶してます。 これで、出来なかったら。。。。。また、考えます。(^_^;)
- moon_myu
- ベストアンサー率33% (39/118)
フォームヘッダーなりに、非連結のコンボボックスを作っておいて、a値が変わるとマクロが実行(フィルタの実行)される方法だと 幾つの項目でも、フィルタを掛けて検索を狭くして行く方法がありますが、駄目でしょうか? とりあえず方法を 1.フォームヘッダーに非連結のコンボボックスを複数作って、 名前を付けておきます 2.マクロの作成 マクロ名を付け(例えば、検索1) アクションに「全レコードの表示」 次の行のアクションに「フィルタの実行」 Where条件式で式ビルダを作ります forms![フォーム名]![非連結で作成したコンボボックスに 付けた名前]=[クエリ名]![フィールド名] ※)複数の項目のフィルタを掛ける場合は、マクロの作成で(例えば検索2) と名前を付け、アクションに「フィルタの実行」を作ります。 この時、「全レコードの表示」は付けないでね! 3.フィルタ解除用のマクロを作成 マクロ名を付けます(例えば、フィルタの解除) アクションに「全レコードの表示」 4,フォームにフィルタ解除マクロ実行のボタンを作ります 5,非連結で作成したコンボボックスのプロパティで イベントタブの変更時に、作成したマクロを割り当てます と言う方法は? これは、and検索になりますが、or検索をしたいのならば、 非連結のコンボボックスに入った値を、パラメータクエリのパラメータへ「値の代入」とマクロを作る方法もありますよ。
お礼
回答ありがとうございます。 一つの項目のフィルタはかけれたのですが、2つ以上の項目のフィルタをかけることができません。 1つ目の項目のマクロ実行条件として、フォーカスを失った場合とし、2つ目の項目に移るとフィルタはかけられるのですが、2つ目から3つ目に移るときにはフィルタがかけられません。条件としては一つ目と同じように、2,の手順を参考にして作成しました。今一度ご教授よろしくおねがいします。
補足
回答ありがとうございます。 複数の条件というのは、 コンボ1 コンボ2 コンボ3 コンボ4 あ い う え - これらをの条件で検索 - といった形をとりたいと思っています。 この場合の条件の記述がわからなくて困っています m(..)m