サブフォームでクエリの更新

このQ&Aのポイント
  • サブフォームでクエリの更新方法について質問します。
  • 番号テキストに入力された番号に一致するデータのみをサブフォームに表示したいです。
  • 現在の状態ではクエリが普通に開かれてしまうため、サブフォームで実行する方法を教えてください。
回答を見る
  • ベストアンサー

サブフォームでクエリの更新

「Q検索」というクエリと「F検索」というフォームを作成しフォーム上には「番号テキスト」とコマンドボタンを作成後、F検索にQ検索をドラッグしてQ検索のサブフォームを作成しました。 Q検索の番号フィールドの抽出条件には[Forms]![F検索]![番号テキスト]は入力しています。 やりたいことは 番号テキストに番号を入力しコマンドボタンをクリックしたら 一致する番号だけをサブフォームに表示させたいのですがどうすればいいのかわかりません。 今の状態は コマンドボタンのクリックイベントにVBA DoCmd.OpenQuery "Q検索", acNormal, acEdit 普通にクエリが開いてしまいます。 これをサブフォームで行うにはどうすればいいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • noah7150
  • ベストアンサー率46% (116/251)
回答No.1

DoCmd.OpenQuery "Q検索", acNormal, acEdit この命令だとクエリーを開きなさいですので当然の結果です フォームに貼り付けたQ検索はF検索のコントロールになっていますので F検索のQ検索サブフォームコントロール名をプロパティーで確認し上記命令を コントロール名.Requery に変えましょう

lkhjlkhjlk
質問者

お礼

できました。ご回答ありがとうございます。

関連するQ&A

  • accessのサブフォームの更新

    いつもお世話になっています。 サブフォームの件でどうしても解らないところがあります。 受講者名簿テーブル 受講者番号、受講者名、受講者住所・・・ 受講者予約テーブル 受講者番号、日付、授業内容 上記の2つのテーブルでそれぞれフォームを作成していて、メインが「受講者名簿F」サブが「受講者予約F(表形式)」、受講者番号でリレーションをしています。 受講者予約テーブルをもとに、日付で検索できるように「受講者日付検索Q」というクエリを作成しました。 「受講者名簿F」のメインテーブルに「日付検索」というのを作成して、「受講者日付検索Q」をもとにしたフォームを開くようにしています。 今回、行いたいことは「日付検索」ボタンの隣に「更新」というボタンを作成し、「日付検索」で表示されたフォームにデータ変更をした際、画面を閉じた後で サブフォーム「受講者予約F(表形式)」の画面に変更が反映されるようにしたいのですが、やり方が思いつきません。 よろしくお願い致します。

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

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

  • Access2003 テキストボックスの値によるクエリの抽出条件

    コマンドボタンによるクエリの実行と、直接クエリを実行する(マウスでクリック) するのとで、動作が変わってしまいます。 F_メインメニュー(フォーム)内の非連結のテキストボックスtext1に文字列を入力し、 その隣に配置した検索ボタンを押すことで、テキストボックスの値を含む住所を 抽出するよう、Q_顧客を作成したのですが、F_メインメニュー内にある テキストボックスに文字列を入れ、F_メインメニューを開いたまま 直接、Q_顧客をマウスクリックにより実行すると、 確かに該当する値を含む住所をもつレコードのみがヒットします。 しかし、テキストボックスの横に配置した、コマンドボタンによる クエリの実行をすると、条件抽出されず、全件ヒットしてしまいます。 直接、Q_顧客をマウスによってクリック実行するとできるのに、 なぜコマンドボタンにコマンドボタンがクリックされたらQ_顧客を実行するよう ウィザードで作ると同じ動作にならないんでしょうか? コマンドボタンにはクリックされたらQ_顧客を実行するようにウィザードで 作成しています。 ご教授よろしくお願いします。 **以下作成状況** 「フォーム名」: F_メインメニュー ※このF_メインメニュー内に非連結のテキストボックスtext1を作成。 テキストボックスの横に検索ボタン(コマンドボタン)を作成し、 検索ボタンをクリックしたら、以下のQ_顧客を実行するよう、 コマンドボタンをウィザードで作成。 「テーブル名」: T_顧客 ※フィールドに「住所」あり。 「クエリ名」: Q_顧客 ※ ウィザードでT_顧客からクエリを作成(この時点では抽出条件設定なし) クエリの抽出条件で フィールド:住所 の抽出条件に以下を設定 Like "*" & [Forms]![F_メインメニュー]![text1].[Text] & "*"

  • Access2007でサブフォームを再クエリする

    ==環境== OS:Windows XP Professional Ver.2002 Service Pack 3 Access 2007 マクロを使って下記の操作をしようとしています。 以前Access2000を使っていて使用できたマクロが、Access2007では動かなくなってしまいました。 このマクロをどう修正したらいいのかわかりません。 [1]フォームAに作られた一覧表(テキストボックスを使って表示している) ----------------------------------- 品名------金額a-----金額b-----合計 製品1----5000-------6000@------11000 製品2----4000-------3000-------7000 ----------------------------------- [2]そのうち明細が見たい箇所のテキストボックスをクリック  ※この場合、製品1の金額bの明細を表示させたいので   `@マークが付いているテキストボックスをクリックしています。 [3]サブフォームを持つフォームBが開く [4]フォームBの検索条件 テキストボックスの『品名検索欄』に「製品1」を入力 オプショングループの『金額区分』の「b」がON [5]フォームBを再クエリ  ※フォーム上には再クエリボタンが設置されています。   サブフォームは「sub_form」という名前で配置されています。 ==2000でのマクロ== [3]から[5]について、以下のように作成しています。 (1)フォームを開く ・フォーム名:フォームB (2)値の代入 ・アイテム:[Forms]![フォームB]![品名検索欄] ・式:[Forms]![フォームA]![品名] (3)値の代入 ・アイテム:[Forms]![フォームB]![金額区分] ・式:2 (4)キー送信 ・キー操作:+{F9} ・待機:いいえ ==2007での状況== 2000で作成したマクロをそのまま使うと(4)が動かないようです。 フォームB上では品名と金額区分が入力されており、 サブフォームに表示されるはずのデータは空です。 フォームB上の「再クエリ」ボタンを押すとデータが表示されました。 試しに(4)キー送信を再クエリ(コントロール名:sub_form)に変えたところ 「カレントレコードには'sub_form'という名前のフィールドはありません。」 と表示されてしまいました。 このマクロをどう直したらいいでしょうか。 皆さん、よろしくお願いいたします。

  • サブフォームにクエリの結果を表示するには・・・?

    ACCESSで勉強を始めたばかりの者です。 過去ログを検索してもわからなかったので教えてください。 ただ今検索用のテキストボックスを作り、コマンドボタンを押すとクエリが実行されるようになっております。 ここで、クエリの画面を出すのではなくサブフォームを作ってそこに表示させるようにしたいと思ってます。 表示させたい項目はすでに作ってはみたのですが、どうやったらコマンドボタンを押してそこに表示させるようにできるのかがわかりません。 もしかしたら大変未熟な質問をしているかもしれませんが、どうか教えてください。

  • クエリをピボットテーブルで開きたい

    フォームのコマンドボタンをクリックして「作成者別」というクエリを開いているのですが ピボットテーブルで開きたいのですがデータシートで開かれてしまいます。 クエリのデザインのプロパティ→規定のビューはピボットテーブルにしてあり、クエリをダブルクリックして開くとピボットテーブルで開かれるけど フォームのコマンドボタンからはデータシートです。 vbaコードは DoCmd.OpenQuery ("作成者別") です。 以上よろしくお願いします。

  • Access コマンドボタンクリックでサブフォームに結果表示

    Access初心者です。 フォームに50音順コマンドボタンを作成、 コマンドボタンの「あ」をクリックしたら、下のサブフォームに 「あ」から始まる名前を表示したいのです。 サブフォームに表示するクエリの抽出条件にどのようにを入力するのでしょうか?あいまい検索?? コマンドボタンのイベントからマクロを作成するのでしょうか? すごく初歩的な質問ですね、、、お恥ずかしい どなたか教えていただければうれしいです。

  • Access:サブフォームにクエリ表示⇒フィールドを絞り込みたい

    Access2003 WinXP です。 フォームにサブフォームを置き、サブフォームのソースオブジェクトにクエリを参照しているデータシート形式のフォームを設定しています。 フォームに絞込み条件を選択するオプションボタン、表示するフィールドを選択するオプションボタンを配置し、 サブフォームへ表示するコマンドボタンを置いています。 この設定を選択した後コマンドボタンを押すと、クエリの中身を書き換えています。 で、実行すると、表示しない設定のフィールドには「Name?」という値が入ったフィールドがしっかり表示されてしまいます。 ソースオブジェクトにクエリ自体を設定すれば回避出来ますが、表示されたデータをダブルクリックするとその1レコードを表示する画面を更に開きたいと思っていますので、サブフォームにデータシート形式のフォームをセットするのがダブルクリックイベントを取得出来て良いかと思っています。 分かりにくい説明ですみません。 何か解決法を分かる方いらっしゃいましたら、お願いします。

  • サブフォームを利用したクエリーの抽出条件について

    環境:ACCESS2003&XP Pro メインフォーム&サブフォームのフォームを作成しています。 このサブフォームにテキストボックスをつけ、このテキストボックスの値を抽出条件にしたクエリーを作成しましたが、抽出条件がうまくいかないようで クエリー実行時にパラメータを聞いてきます。 クエリーの抽出条件は forms![メインフォーム名].[サブフォーム名].[テキストボックス名] です。 上記の書き方がおかしいのだと思います。 よろしくお願いします。

  • メイン・サブフォームの内容を更新クエリで更新したい

    お世話になります。 現在、 tb受注日報(親)、tb受注伝票(子)で、受注伝票をサブフォームという形で組み込んだ【受注日報フォーム】と tb作業表(親)、tb作業表明細(子)で、作業表明細をサブフォームという形で組み込んだ【作業表フォーム】 があります。 【受注日報フォーム】上にあるコマンドボタンのマクロに、親同士、子同士での追加クエリを設定し、ボタンを押せば【受注日報フォーム】に入力した内容を【作業表フォーム】に反映させられるようにしています。 この要領でコマンドボタンを押せば以前に入力した【受注日報フォーム】の更新内容を【作業表フォーム】に反映させられるようにしたいと考えています。 そこで、親同士、子同士で更新クエリを作ってみた結果、親同士の更新は大丈夫でしたが、子同士の更新が一番目のレコードしか更新されませんでした。 更新クエリの抽出条件 親 フィールド 「識別番号」(オートナンバーです)   テーブル 「作業表」   抽出条件 [forms]![受注日報]![識別番号] 子 フィールド 「受注伝票番号」   テーブル 「作業表明細」   抽出条件 [forms]![受注日報]![受注伝票Sub].[form]![受注伝票番号] ちなみに親同士の追加クエリの抽出条件に使用した主キーは「識別番号」とは別の番号で、オートナンバーではなく、最大値に+1するやり方で振っている番号を使用していて、子同士の主キーは追加クエリも更新クエリもおなじ[受注伝票番号]を使用しています。 抽出条件かこの主キーの設定が問題なのかなあと思いますが、わからないのでどなたかご回答宜しくお願い致します。

専門家に質問してみよう