ホテルを選ぶとき、これだけは譲れない条件TOP3は?

Access2000で、「メインフォーム」の中に「サブフォーム」を作り、「メインフォーム」上の複数のテキストボックス(非連結)の条件により「サブフォーム」内のデータシート形式の「一覧表」にフィルタをかけて表示させたい。
「サブフォーム」のコントロールソースである「選択クエリー」の抽出条件に「メインフォーム」上のテキストボックスの内容を記入してできるかと試みていますが・・・。意図としては条件が複数になると、その分だけ絞り込んだ表示結果を得たいのですが、うまくいきません。
どなたか、教えていただけないでしょうか?

A 回答 (3件)

複数ある場合の方法です



クエリの抽出条件に、それぞれ
=Forms![メインフォーム名]![テキストボックスn] or Forms![メインフォーム名]![テキストボックスn] is null

この方法は非常に簡単なんですが
クエリデザインビューを一度閉じて開きなおすと
別のものに書き換えられてしまうという問題点があります

デバッグはクエリを閉じないで
デザインビューとデータシートビューを往復する形で行なってください

また複数がどの程度か分かりませんが
数が多くなるととんでもないものに書き換えられてしまいますから
デバッグ完了後はSQLビューにして保存するようにしてください
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速、試してみることにします。

お礼日時:2005/06/08 12:53

選択クエリを作らずに、フォームのテキストボックスの入力状態に従ったSQLを


サブフォームのコントロールソースに代入するプロシージャをコマンドボタンの
クリックイベントなどに作成したらいかがでしょう。
    • good
    • 0

クエリの抽出条件に


=[FORM]![メインフォーム名]![テキストボックス名]
を記述します。複数あれば複数のフィールドの抽出条件に各抽出条件を入れるテキストボックス名を指定して同様に記述して最後の抽出条件をいれた後にサブフォームのソースのクエリをRequeryすればうまくいくと思いますが。
Requeryメソッドを使えば抽出条件を使って再クエリします。ヘルプなどを参照してください。
ただ複数抽出条件があった場合、入力がされていないテキストボックスがあると抽出できません。
抽出条件は全て必ず入力されるという前提なら上記でいけると思います。
テキストボックスに入力されない場合もあるようだとまた別のやり方になってしまいます。

この回答への補足

ご回答ありがとうございます。実は説明不足だったのですが、”複数抽出条件があった場合、入力がされていないテキストボックスがあると抽出できません”とご指摘の通りの状況で困っています。その方法を教えていただけないでしょうか?よろしくお願いします。

補足日時:2005/06/07 18:43
    • good
    • 0

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

関連するカテゴリからQ&Aを探す


おすすめ情報