• ベストアンサー

Access 再クエリについて

メインフォーム(単票)に合計を表示したサブフォームと、その合計の元になり入力可能なサブフォームを作成しました。 この入力可能なサブフォームにデータを入力した場合、合計のサブフォームの表示を更新したいのですが、 入力可能なサブフォームに更新後処理で再クエリを指定したのですが、名前が正しくないとエラーが表示されます。 サブフォームに再クエリの指定はどのようにするのでしょうか? 名前:(入力可能なフォーム) ■F調査データ(売上構成)のサブフォーム 名前:合計サブフォーム ■売上構成比 店舗別合計のサブフォーム 更新したいフィールド名 売上構成の合計

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

Me.Parent.Form.サブフォームコントロール名.Reauery ですね。 サブフォームコントロール名は、 データベースウィンドウに表示されるフォーム名と 同じとは限りません。 ご確認を。

sskj
質問者

お礼

ありがとうございます。 ""が抜けていました。

sskj
質問者

補足

実行エラー オブジェクトが必要です。と表示されます。 名前は、サブフォーム右クリック→プロパティ→その他→名前 で良いですよね?

すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#140971
noname#140971
回答No.4

全て撤回! Private Sub Form_AfterUpdate() Me.Parent.Form("クエリ1").Requery End Sub で完全にOKでした。 勘違いしていました。! いわゆるサブフォームの更新と勘違いしていました。 質問はメイン、サブフォームの関係ではないのでNo2さんの回答でOKです。

sskj
質問者

補足

ありがとうございます。 Private Sub Form_AfterUpdate() Me.Parent.Form("クエリ1").Requery End Sub で更新できました。 マクロの更新クエリでは出来なかったのですが、なぜでしょうか?

すると、全ての回答が全文表示されます。
noname#140971
noname#140971
回答No.3

tab1: ID_fld1_fld2_fld3 01____1_AAAA___10 02____1_BBBB___10 03____2_AAAA___20 04____2_BBBB___20 [クエリ1] ___1___20 ___2___40 SELECT fld1, Sum(fld3) AS fld3の合計 FROM tab1 GROUP BY fld1; さて、一つのフォームに[tab1入力フォーム]と[クエリ1]を配置しても入力結果は合計に反映されません。 そこで、下記のように Requery を実行。 が、それは瞬時には反映されないので実際問題としては使用不能かと思います。 Private Sub fld3_AfterUpdate()   Me.Parent.Form("クエリ1").Requery End Sub そこで・・・。 Private Sub fld3_AfterUpdate()   Me.Parent.Form("クエリ1").SetFocus   SendKeys "+({F9})", False End Sub これであれば合計が瞬時に更新されますがフォーカスが移動してしまします。 「連続入力が不可能になるのでは・・・」という理由です。 tab2: fld1_fld3の合計 ___1__________0 ___2__________0 ところで、仮に合計を記録するテーブルを用意するとします。 Private Sub Form_AfterUpdate()   CnnExecute "UPDATE tab2 Set fld3の合計=" & DBSum("fld3", "tab1", "fld1=" & Me.fld1) & " WHERE fld1=" & Me.fld1 End Sub この場合、合計参照フォームでは[クエリ1]でなく[tab2]を参照させます。 これですと、[tab1入力フォーム]のレコードが更新された瞬間に合計表示フォームも更新されます。 もちろん、リクエリなんてしていませんのでフォーカスの移動もありません。 必要であれば、CnnExecute関数は補足します。

すると、全ての回答が全文表示されます。
noname#140971
noname#140971
回答No.1

Q、サブフォームの再クエリ。 A、それをやると色々と問題が・・・。 普通、サブフォームを更新すると対応する合計欄も更新されるはず。 で、リクエリコマンドなどを走らせるとカーソルは先頭にいくでしょう。 で、1行目を入力したら2行目。 で、2行目を入力したら3行目。 とのカーソル移動が出来なくなると思います。 そういうことで、一体、どういう風に設計されているのかを補足されたが・・・。

sskj
質問者

補足

回答ありがとうございます。 //upload.jpn.ph/img/u22827.jpg ■F調査データ(売上構成)のサブフォームの売上構成に入力して その合計(店コードごとの合計)を■売上構成比 店舗別合計のサブフォームに表示しています。 ■F調査データ(売上構成)のサブフォームを変更した再に■売上構成比 店舗別合計のサブフォームの 合計が更新されるようにしたいのですが何か問題があるのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A