レポートの機能を使って、グループ毎にページ番号とページ数を印刷することができます。レポートでは[Pages]を使って全体のページ数を各ページに印刷することができますが、この時Accessは全ページを2回スキャンしています。これを利用して1回目のスキャンで各グループのページ数を配列に保存しておき、2回目のスキャンで配列からページ数を取り出してコントロールに値をセットするのです。
具体的には、レポートに以下のプロシージャを記述してください。そうすれば[ページ数表示]というコントロールに表示されます。注意点として[Pages]をダミーで配置させておくことです。[ページ数表示]は、ページヘッダ・ページフッタどちらでもOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Option Compare Database Option Explicit Dim gps(1000) As Integer Dim i As Integer Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) i = 0 End Sub Private Sub グループフッター0_Format(Cancel As Integer, FormatCount As Integer) If FormatCount = 1 Then If Pages = 0 Then gps(i) = Page i = i + 1 Page = 0 End If End Sub Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer) If Pages > 0 Then ページ表示 = Page & "/" & gps(i) End Sub
|