サブフォームの更新について

このQ&Aのポイント
  • サブフォーム(frm_sub)で同じ年度、都市名のA男性率の履歴を帳票フォームで表示するようにしています。
  • メインフォームのAのデータを全部入力し、A合計が出た時点でサブフォームの現在のデータに現在のページを反映させたいのですが、どのようにすればよろしいでしょうか?
  • A合計のフォーカス取得時にForms![Frm_01]![frm_sub].Form.RequeryとかSendKeys "{F9}", Trueとかネットをみながら入力したのですがうまくいきません。
回答を見る
  • ベストアンサー

サブフォームの更新

どうぞ教えてください。 Tbl_01(ID ,年度、都市名 総人口、A男性人数、A女性人数、A合計、A男性率、B男性人数、B女性人数、B合計、B男性率、C男性人数、C女性人数、C合計、C男性率)をもとに単票フォームFrm_01を作成いたしました。 サブフォーム(frm_sub)で同じ年度、都市名のA男性率 の履歴を帳票フォームで表示するようにしています。 メインフォームのAのデータを全部入力し、A合計が出た時点でサブフォームの現在のデータに現在のページを反映させたいのですが、どのようにすればよろしいでしょうか? A合計にはNz(A男性人数+ A女性人数)の式が入力されています。 A合計のフォーカス取得時にForms![ Frm_01]![ rm_sub].Form.Requeryとか SendKeys "{F9}", Trueとかネットをみながら入力したのですがうまくいきません。 よろしくお願いいたします。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

すみません。所用で返答がおそくなりました。 >ボタンを作成いたしまして >クリック時イベントに >SendKeys "{F9}", True >と入力いたしましたところうまくいきました。 >A合計の更新後処理のところに、「Me!埋め込み0.Requery」もしくは >「Me! frm_sub.Requery」と入力しましてもエラーも何もなく何もかわりません。 ということなので、A合計の更新後処理に、 DoCmd.RunCommand acCmdSaveRecord Me!frm_sub.Requery と、いれてみてください。一応、補足のあったテーブルや フィールドフォームなどを作成しようとしたのですが、 所用のため途中までです。 一応、上記を確認してみてください。

mirumirus
質問者

お礼

入力いたしましたがやはり何もかわらないです。 お忙しい中のご連絡、大変にありがとうございます。

その他の回答 (3)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

No2のご返答からすると、 プロパティシートの項目の「すべて」を 選択すると、 名前 ソースオブジェクト リンク子フィールド リンク親フィールド   ・   ・   ・ のように並んでいて、 名前           frm_sub ソースオブジェクト   frm_sub リンク子フィールド リンク親フィールド   ・   ・   ・ というようになっている、ということですね。 つまり、「名前」も「ソース子フィールド」も 「frm_sub」となっているということでしょうか。 それならば、設定というか抽出条件を見直さなければ ならないのですが、一つ気になるのは、 >A合計にはNz(A男性人数+ A女性人数)の式が入力されています。 のところで、これを、 Nz(A男性人数)+Nz(A女性人数) とするとどうなりますか。 なお、「うまくいかない」というのはエラーが出るのでしょうか。 あるいはエラーも出ずに抽出がうまくいっていない ということでしょうか。

mirumirus
質問者

お礼

ご連絡ありがとうございます。 >名前           frm_sub >ソースオブジェクト   frm_sub >リンク子フィールド >リンク親フィールド >  ・ >  ・ >  ・ >というようになっている、ということですね。 そうなっています。 >つまり、「名前」も「ソース子フィールド」も >「frm_sub」となっているということでしょうか。 「名前」と「ソースオブジェクト」が「frm_sub」となっています。 リンク子フィールド年度;都市名 リンク親フィールド年度;都市名 となっています。 >Nz(A男性人数)+Nz(A女性人数) >とするとどうなりますか。 ↑大変もうしわけありません。書き間違えでした。 A合計にはNz(A男性人数)+Nz(A女性人数)となっています。 >「うまくいかない」というのはエラーが出るのでしょうか。 でません。 A合計の更新後処理のところに、「Me!埋め込み0.Requery」もしくは「Me! frm_sub.Requery」 と入力しましてもエラーも何もなく何もかわりません。 どうぞよろしくお願いいたします

mirumirus
質問者

補足

ボタンを作成いたしまして クリック時イベントに SendKeys "{F9}", True と入力いたしましたところうまくいきました。 ボタンのクリック時イベントに 「Me!埋め込み0.Requery」と記入いたしますと 「指定した式で参照されている埋め込み0フィールドがみつかりません」とでてきます。 「Me! frm_sub.Requery」 と入力いたしますとエラーも何もなく、なにもかわりません。 ボタンを作成せずに A合計が出た時点で自動的にサブフォームの値を更新したいのですが。 どうぞよろしくお願いいたします。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

No1です。 メインフォームをデザインビューで開き、サブフォームが 表示してあるコントロールとメインフォームの境目に マウスのポインタを当て、そこで右クリックして、 境目が選択されたら表示されるダイアログの中から プロパティを選択して、表示されるプロパティシートの 標題が「サブフォーム/サブレポート」となっていたら、 その中の「名前」を確認すればそれがコントロールの 名前になります。

mirumirus
質問者

お礼

ありがとうございます。確認いたしましたところfrm_subでした。 やはりうまくいきません。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

以下に同じような質問に回答していますが。 http://okwave.jp/qa/q8129827.html 質問の中の設定が正常に機能しているという前提で、 質問にあわせると、 Private Sub A合計_AfterUpdate() Me!埋め込み0.Requery End Sub のように、なると思います。なお、「埋め込み0」の 説明はリンク先を参照してください。

mirumirus
質問者

お礼

ご連絡ありがとうございました。 更新後処理にMe!埋め込み0.Requeryをいれさせていただいたのですがうまくいきません。埋め込み0をサブフォームの名前にしてみたのですがやはりだめです。 レコードを動かして戻ってみるとちゃんとサブデータにデータが入っています。サブフォームは1つですが何回か埋め込みをやり直したりしていたので埋め込み0が埋め込み2とか埋め込み3とかになっているのでしょうか?どのようにしたらサブフォームの埋め込み0を確認できますでしょうか? 本当に初心者の質問で失礼いたします。教えていただけませんでしょうか?

関連するQ&A

  • ACCESS サブフォーム MAX関数 テーブル

    ACCESS初心者です。 以下のテーブルがサブフォームに表示されています。 メインフォームの名前をmain_frm サブフォームの名前をsub_frm テーブルの名前をtable とします。 テーブルは以下のように構成されています。 文字|値 a|1 b|10 c|3 d|4 メインフォームにテキストボックスを設置して そこに最大値である10を表示させたい時はどのように関数を組めばよろしいでしょうか?

  • ★Access★2つのサブフォームの計算

    受注管理として、注文書の作成入力をしています。 『メインフォーム』で、顧客先などを入力し、『サブフォームA』で受注明細を入力しています。そして受注種類が2つあるので、フィールドの違う受注明細の『サブフォームB』もあるんです。各サブフォームには数量・単価・金額が入っています。 『サブフォームA』『サブフォームB』の両方に注文がある場合は、各サブフォームの合計(=[Form]!サブフォームA!金額合計)を出し、その合計同士を足して総合計金額(A+B)が『メインフォーム』にちゃんと表示されます。しかし、『サブフォームA』にだけ注文がある場合、『A』合計は表示されますが、『B』合計が空欄になってしまって、A+Bの合計が計算されないのです。さらにレポート印刷もできないのです。 どうすればいいのでしょうか?合計プロパティの既定値を0にしてもだめなんです。誰か教えて下さい。

  • アクセス サブフォームの可視・不可視の切り替え

    Accessの初心者です。よろしくお願いします。 サブフォームを いくつかのフォーム(親)で使いまわしています。 そのため、 サブフォームにある一部のテキストボックスを 一部のフォーム(親)では不可視の設定にしました。 そこで、 「不可視」にしなくて良いフォーム(親)でも「不可視」のままになってしまうため 「不可視だったら可視」 「可視だったら不可視」というIF文を ご教示いただけないでしょうか。 ※IF文でなくても、下記設定が実現するのであれば構いません。 例) 親フォーム名:FRM_あいう・FRM_えおか・FRM_きくけ・・・ サブフォーム名:FRM_A_sub ※各親で同じサブフォームを使っています。 サブフォームの可視・不可視にしたいテキストボックス名:TXT_テスト →FRM_あいう・FRM_きくけ では、TXT_テストは入力項目にしないため不可視、  その他のフォームでは、可視にしたいです。 何卒、よろしくお願い致します。

  • ACCESS 削除 サブフォーム table 表形式

    ACCESS初心者です。 以下のテーブルがサブフォームに表示されています。 メインフォームの名前をmain_frm サブフォームの名前をsub_frm テーブルの名前をtable とします。 テーブルは以下のように構成されています。 文字|値 a|1 b|10 c|3 d|4 メインフォームに削除ボタンを設置して マウスポインタにより任意のテーブルの一つの行(例えば、b|10) を削除するにはどのようなプロージャを組めばよろしいでしょうか?

  • サブフォームのサブフォームの値を参照

    Access2007で親フォームAの中にサブフォームBが入っていて、そのサブフォームBの中にサブフォームCが入っているとします。 この場合、親フォームAからサブフォームCの中のテキストボックスの内容等は参照できないのでしょうか? 一応試しに、親フォームから Me!サブフォームB.Form!サブフォームC.From!テキスト.SetFocus と、ソースに書いたのですが「実行エラー:438」が出てしまいます。 どうにかして参照できないでしょうか? ご存じの方がいらっしゃったらご教授お願いします。

  • 2つのサブフォーム間でデータの連携

    今、ある単票フォームに、2つのサブフォームを配置し、そのサブフォーム間で金額の連携をしたいと考えています。 【親フォームA】 ・ID1、長整数型(主きー) ・受付日時 ・発注金額総合計 <== ※Bが更新されたら、ここを更新したい 【サブフォームB】 ・ID2、長整数型(主キー) ・ID1(外部キー) ・発注日 ・発注合計金額 <=== ※Cが更新されたら、ここを更新したい ==> Aの更新へ↑ 【サブフォームC】 ・ID3、長整数型(主キー) ・ID2(外部キー) ・発注項目名 ・単価 ・数量 ==>ここを更新する→Bへ↑ ・単位 ==>ここを行進する→Bへ↑ ・摘要 サブフォームB、Cは、いずれも帳票型です。 それぞれ、テーブルA, B, Cがレコードソースで テーブル構成は、上の項目の構成と同じです。 A-ID1: B-ID1 = 1:多 B-ID2: C-ID2 = 1:多 この時、Cで単価と数量を入力したら、Bの発注合計金額の値を更新したいです。 それと同時に、親Form Aの「発注金額総合計」の値を、Bの全てのレコードの「発注合計金額」のSumで更新したいです。 よろしくお願いします。

  • Accessのサブフォームの累計について

    とても初歩的な質問で申し訳ありませんが、誰か教えて下さい。 売上メインフォームの中に 「Aの商品のサブフォーム」 「Bの商品のサブフォーム」 「Cの商品のサブフォーム」 「Dの商品のサブフォーム」 と作ってあります。 各小計はメインフォーム内に出しております。 メインフォームの累計をフォームフッターに出すのですが、A~Dの商品の売上が無い場合(小計が出ない場合) フォームフッターの累計に合計が反映しません。 どのような式を入れれば、良いのでしょうか? どなたか教えて下さい。

  • サブフォームでのテキストとコンボ連動について

    ACCESS2002でDBを構築している初心者です。 メインフォームに2つのサブフォーム(サブ1、サブ2)埋め込みを サブフォーム同士を連動させたフォームを作成中です。 2つのサブフォームのうちのサブ1にテキストボックスを基に コンボボックスでSQLを実行して抽出結果を コンボボックスに表示させています。 下記でaの値が変更されるとbにその値を送っています。 Private Sub a_AfterUpdate() DoCmd.Requery "b" Me!a.Requery End Sub その後bの値集合ソースでSQLを実行しております。 SQLの抽出条件「forms!サブ1!a」として、上記で取得した テキストボックスaを使用しております。 サブ1をメインフォームで開き上記を実行すると値を抽出します。 しかしサブフォームで実行した際に、「パラメータの入力」が 出てきて手動で入力しなくてはいけません。 サブフォーム上で実行する際に、イベントプロシージャや SQLの抽出条件を更新しなくてはならないのでしょうか。 お手数おかけいたしますが、ご教授よろしくお願いいたします。

  • サブフォームの参照

    accessにて・・・ メインフォームに二つのサブフォームがあります(sub_A,sub_B)とします。 sub_A から sub_B のレコードソースを参照するにはどういう風にすればいいのでしょうか? me.parent.sub_B.form.recordsource でやってみたのですが、ダメでした・・・ で指定できるのでしょうか?

  • Access 2007 サブフォーム連動について

    access 2007 初心者です。 フォームの作成をしています。サブフォームが2つあり、連動させたいのですがなかなか思うようにいきません。下記のように行いたいのですが。。    Aメイン    サブB     ↓        サブC 希望例: Aメインそのままで、       サブB中の1をクリック ー サブC 関連1 表示         サブB中の2をクリック - サブC 関連2 表示 現状では、サブBの最初に表示される番号1の内容がサブCに反映されるだけです。 サブBの異なる番号2をクリックしても、サブCは1の内容のままです。 希望としていることはできないのでしょうか。。?

専門家に質問してみよう