Accessでサブフォームの合計をメインフォームに
Access2007で開発しています。
メインフォームにサブフォームを貼り付けており、
サブフォームに入力した「数量」「単価」から「金額」を計算して表示し、
その合計金額をメインフォームのテキストボックス(非連結)に表示しようと
しています。
サブフォームは行単位で追加、削除が可能です。
サブフォームの更新結果が正しくメインフォームに表示されずに困っています。
おわかりの方、おられましたらお教え頂きたく、よろしくお願い致します。
【サブフォーム】
・レコードソース:T_明細
・[詳細]項目:数量・・・レコードソース=T_明細・数量
単価・・・ 〃 =T_明細・単価
金額・・・数量および単価のAfterUpdateで計算して表示。
[フォームフッター]項目:金額計・・・コントロールソース=Sum([金額])
・Vbaコード:
Private Sub Form_AfterUpdate()
Forms![メインフォーム].合計計算
End Sub
Private Sub Form_Delete(Cancel As Integer)
Forms![メインフォーム].合計計算
End Sub
【メインフォーム】
・テキストボックス:「合計金額」(非連結)
Public Sub 合計計算()
Me.サブフォーム.Requery
方法1: Me!合計金額 =DSum("金額", "T_明細", (キー項目指定 記述省略))
方法2: Me!合計金額 = Me![サブフォーム].[Form].[金額計]
End Sub
ここで、
方法1の場合:数量、単価の変更入力及び行追加は正しく動作するが、
行削除の後、メインフォームの「合計金額」が再計算されず、変更前のまま。
方法2の場合:数量、単価の変更入力及び行追加すると、「合計金額」が”0”になる。
行削除しても「合計金額」は変わらず、変更前のまま。
どちらも、サブフォオームの「金額計」は正しく表示されています。
以上、よろしくお願い致します。
お礼
先程、右寄りにする設定方法を聞きましたが、無事解決出来ました。 本当にいろいろとご協力有難うございました。 まだまだ分からない事があると思いますが頑張って設定したいと思います。
補足
無事設定できました。有難うございました。 もう1つ質問なんですが, A+B=C で設定したのですが、AとBのテキストボックスに数字を入力した時は、右寄りで入力されているけど、合計のCのテキストボックスには左寄りで合計が入力されてしまいます。 すごく初歩的なことですがどのようにしたら全ての表示を右寄りに合わせる事が 出来るのでしょうか? お手数かけますが宜しくお願い致します。