hatena
hatena
2023/06/06 (火) 17:01:43
レポートヘッダーに =Sum([税込み日別合計]) とすると、全レコード分繰り返されて集計されてしまうので、ここは、DSum関数を使う必要があります。
=DSum("税込み日別合計","税込み日別合計を表示するクエリ")
hirotonさん提案のVBAで累計していく方法もレポートヘッダーに表示しようとなると、結構はまることになります。
レポートのイベントの発生メカニズムを理解しておく必要があります。
レポートのイベントの発生メカニズムの研究 - hatena chips
レポートのイベントの発生メカニズムの研究 その2 - hatena chips
方法としては、下記のような考え方になります。
=Pages と総ページ数を表示するテキストボックスを配置しておく。
すると、総ページ数を取得するために、先頭レコードから最終レコードまでFormatイベントのみが発生する。
これで総ページ数を取得できたら、改めて先頭レコードに戻って最終レコードまでFormatイベントとPrintイベントが発生して実際にレポートしてと出力します。
この最初のループの時にFormatイベントで合計を累計していきます。
2回目のループのレポートヘッダーのFormatイベントで累計した合計をテキストボックスに代入します。
1回目のループかどうかの判断は pages が0かどうかで判断できます。
Option Compare Database
Option Explicit
Dim 税込総合計 As Currency
Private Sub グループフッター1_Format(Cancel As Integer, FormatCount As Integer)
If Me.Pages = 0 And Me.FormatCount = 1 Then 税込総合計 = 税込総合計 + Me!日合計 * 1.1
End Sub
Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
If Me.Pages < 0 Then Me!請求額総計 = 税込総合計
End Sub
とりあえず上記のような感じですが、レポートの設定によってはいろいろ難しいことも発生しますので、実際に動作確認しながら、修正していく必要があるかもしれません。
通報 ...