これすごいですねぇ。試してみたら確かにBグループのフッターのformatイベントでAグループのフッターの小計が取れました。Aグループのフッターのformatイベント入る前なのでどうかと思ってたんですが計算自体は終わってる上にちゃんと自分のグループの数値が取れるんですね
テストデータ
ID | A | B | n |
---|---|---|---|
1 | あ | A | 1 |
2 | あ | A | 10 |
3 | い | B | 1 |
4 | い | B | 10 |
5 | い | C | 100 |
6 | い | D | 1000 |
7 | い | D | 10000 |
8 | う | E | 1 |
9 | う | E | 10 |
レポートのグループ化の設定
グループ化:A、フッターにテキストボックス[A小計](=Sum([n]))
└グループ化:B、フッターにテキストボックス[B小計](=Sum([n]))
テストコード
Private Sub Aグループフッター_Format(Cancel As Integer, FormatCount As Integer)
Debug.Print "AFooter", Me!A小計
End Sub
Private Sub Bグループフッター_Format(Cancel As Integer, FormatCount As Integer)
Debug.Print Me!ID, Me!A小計, Me!B小計
End Sub
出力結果
1 11 11
AFooter 11
3 11111 11
5 11111 100
6 11111 11000
AFooter 11111
8 11 11
AFooter 11
※未出力のフッターの集計がきちんととれてる(Me!A小計)
※レコードの参照はグループの最後のレコードっぽい(並び順指定してなかったらIDはなぜか降順に・・・)
通報 ...
グループヘッダーに集計用テキストボックス
=Sum()
、=Count()
を置いた場合でもちゃんとグループ内の集計が取得できますので、formatイベントに関係なくグループ全体の集計をしているみたいですね。ちなみに詳細セクションに集計関数を置くと全体の修正をするようです。一番目のレコードでも全体集計になります。
こちらの方法で1回うまくいったと思っていたのですが、「nullの値が不正です」との警告が出て、固まるようになりました。なにか間違っているのでしょうか…
ケアレスミスしてました…うまくいきました。