#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'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved