Microsoft Access Club >SampleFile >インデックス >このページ >次頁 < 前項  サイト内検索


レポートでページ毎に集計する方法:SampleFile056



Accessレポートのページフッターで集計を行うことはできませんね。グループやレポートフッターではできるんですが…。不便ではあります。しかし、チョットした工夫で作成できますので、今回それをご紹介します。

考え方

考え方は、下記の図を基にお話しますと、

  1. ページフッターに空のテキストボックス(名前はtxt_PageCount)を配置します。
  2. 「詳細セクション」の「印刷時イベント」を利用して、
  3. 「詳細セクション」にある請求額テキストボックス(名前はtxt_Count)の値を
  4. テキストボックスtxt_PageCountに次々と加算していく方法です。
  5. それには、「ページフッター」の「フォーマット時イベント」を利用して
  6. テキストボックスtxt_PageCountの値をその都度 0 にして、ページごとに集計を独立させます。

フォームのデザインビュー

サンプルファイルのレポート部分のデザインモードは下記のとおりです。

ページヘッダのフォーマット時イベントプロシージャの作成

ページヘッダのフォーマット時イベントに下記のプロシージャを記述します。

Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer)

    'txt_PageCountは、「ページヘッダー」で合計を求めるテキストボックスです。
    Me.txt_PageCount = 0

End Sub

詳細の印刷時イベントイベントプロシージャの作成

詳細の印刷時イベントに下記プロシージャを記述します。

Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)

    Me.txt_PageCount = Me.txt_PageCount + Me.txt_Count

End Sub

ご存知かと思いますが、

VBAの実行順序は、レポートが開かれると

「レポートヘッダー」、「ページヘッダー」、「グループヘッダー」、「詳細」

という順序で処理が進められます。

特に上記のサンプルで用いた詳細のイベントの使い方は、意外な面がありますね。自動的に積算をしていくんですから…。

関連ページ

ページの先頭へ 前ページへ戻る

 


レポートでページ毎に集計する方法:SampleFile056


 

-Microsoft Access Club-

PLESKやcPanelを思いのまま、ヨーロッパのフランス、ドイツ等の大手データセンターに配置しています。。
PLESKパネルやcPanelパネルを思いのまま..
ヨーロッパ大手データセンターを利用できます。