重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Accessにて、メイン・サブ形式のフォームがあります。
サブフォームには、取引のデータを入力するように設定しています。

●サブフォーム
 日付 重量 ・・・ 

メインのフォームには、サブフォームの合計の重量を表示させています。
サブフォームにて、重量を入力したときに、合計を更新させたいのですが、
次のレコードに移るなどしないと更新されませんよね?

そこで、次のマクロを試してみたのですがうまくいきませんでした。

マクロにて、コントロールの更新後に

 ・再クエリ
 ・最後のレコードに移動(サブフォームを指定)
 ・コントロールの移動

結果は、サブフォームが開いていませんというエラーが表示されます。

重量の間違いをなくすためにも、重量を入力または、更新したときに、
合計の重量も更新したいので、どなたかご教授願います。

A 回答 (6件)

Private Sub 重量_AfterUpdate()


DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End Sub
合計欄は、サブフォームのフォームフッターにあり
=Sum([重量])
というのが前提です。
    • good
    • 0
この回答へのお礼

お返事おそくなりましてすみません。
うまくいきました!!
ありがとうございます。

お礼日時:2005/12/26 10:21

#1です。


>Me.Parent.重量.Requery
>「定義または、オブジェクト定義のエラー」

#3の補足のとおりです。
親フォームの「合計の重量」のフィールド名は「重量」ですか?

とは言うものの、
質問者さんはマクロをお使いのようですから、
#1は止めてマクロにしましょう。

コントロールの更新後に

 アクション:コマンドの実行
 コマンド:レコードの保存

でどうでしょうか。
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
すみません、コントロール名を間違えていました。

上記の方法でうまくいきました。ありがとうございます。

お礼日時:2005/12/26 10:18

老婆心ながら、メインに合計欄を代入更新するとカーソルがサブフォームのトップに移動してユーザーが連続入力作業出来なくなる不具合が発生

するケースもあるので、それを勘案して上手く処理した方がいいですね!
    • good
    • 0

#2補足


重量合計欄はメインにあっても同じです。行を移動しないとデータベースに反映しないので、更新後に、レコードを強制保存するという仕掛けです。
    • good
    • 0

#1の補足です。


コントロール名は、親フォームの合計重量の
テキストボックスの名称です。
念のため。
    • good
    • 0

コントロールの更新後に


Me.Parent.コントロール名.Requery
としてください。

この回答への補足

早速ありがとうございます。

重量の更新後でコードビルダにて上記のように記入しましたが、

Me.Parent.重量.Requery

「定義または、オブジェクト定義のエラー」
となります。
よろしくお願いいたします。

補足日時:2005/12/22 16:56
    • good
    • 0

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