• 締切済み

アクセス サブフォームの使い方

フォームにテキストボックスとコマンドボタンサブフォームが1つづつありま す。 やりたいことは、テキストボックスに入力した条件でコマンドボタンを押すと サブフォームに結果が表示されるというものです。 ID 分類 名称 1  花  バラ 2  花  ユリ 3  昆虫 カブトムシ とテーブルがあった場合、 テキストボックスに 花 を入力すると サブフォームに バラとユリが 表示されるというものです。(実際にはフィールド数はもっとあります。) コマンドボタンにクエリの実行を登録し、サブフォームはクエリをベースに作 成しました。 コマンドボタンをクリックするとクエリの結果が表示され(当たり前ですね) サブフォームは白紙のままです。 ファームのデザインビューをクリックし、再度フォームを表示すると結果は反 映されます。 この、クエリの結果を表示せず、かつサブフォームに結果を表示させる方法を 教えてください。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>クエリの結果が表示され(当たり前ですね)サブフォームは白紙のままです。 当たり前じゃありません。そのようなクエリだからそうなるだけです テキストボックスに未入力の場合には全表示とすることもできます >クエリの結果を表示せず、かつサブフォームに結果を表示させる サブフォームのソースがクエリなら何時でもクエリの結果が表示されます ご希望通りやろうとすればサブフォームのソースを切り替えてやることになりますが そんな面倒なことをしないで、今のクエリの分類の抽出条件欄に =Forms!フォーム名!テキストボックス名 or Forms!フォーム名!テキストボックス名 is null と書いてやればいいのです ボタンにはサブフォームを再クエリするコードを書いてやります

  • ruru0707
  • ベストアンサー率68% (20/29)
回答No.1

コマンドボタンにはクエリの実行ではなく、サブフォームのRequeryを記入すれば良いと思います。 (1)ちなみにサブフォームを使用する場合は、サブフォームに連結するデータはワークテーブルにした方が良いです。(理由:作業した結果を画面で確認しOKだった場合、格納テーブルに更新に行くようにするのがデータを保護する意味から) (2)フォーム上のデータを抽出条件にする場合、テキストボックスよりコンボボックスにする方が良いです。(理由:手入力の場合、全角、半角、スペースなどの相違でも抽出されない場合があるし、入力手間も減らせるから)