#016 グループとは無関係にページごとの小計を印刷する方法 レポート、VBA

レポートでグループごとの小計を印刷するには、グループ化を設定した上で、そのグループフッターに合計用のテキストボックスを配置して、[コントロールソース]プロパティを "=Sum([Data])" のようにすれば印刷されます。これはレポートウィザードでもやってくれますし、VBAを使う必要もありません。

これに対して、グループとは無関係に1ページごとにそのページ内の小計を印刷するには次のようにします。
  1. 小計カウント用の変数を用意する。
  2. ページフッタにページ小計用のテキストボックスを配置する。[コントロールソース]プロパティには何も設定しません。
  3. ページヘッダがフォーマットされる際にその変数の値をゼロにリセットする。グループ化が設定してあり、ページの途中でグループが切り替わったらその時点でページの小計をリセットしたい場合には、グループヘッダがフォーマットされる際にもその変数をリセットします。
  4. 詳細セクションがフォーマットされるごとに各レコードの値を小計カウント用の変数に加算します。
  5. ページフッタがフォーマットされる際に、ページ小計用のテキストボックスに小計カウント用の変数の値をセットします。
レポートモジュールのコード例:
Private plngSyoukei As Long  '小計カウント用変数

Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer)
  '小計カウント用変数をリセット
  plngSyoukei = 0

End Sub

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  '各レコードの値を小計カウント用の変数に加算
  plngSyoukei = plngSyoukei + Me!Data

End Sub

Private Sub ページフッター_Format(Cancel As Integer, FormatCount As Integer)
  'ページ小計用のテキストボックスに小計カウント用の変数の値をセット
  Me!txtPageSum = plngSyoukei

End Sub
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved