| Access Tips by pPoy |
| Report | レポートのページフッターへグループ毎の頁番号設定 (DAO)(Ac97,Ac2000,Ac2002) | ||
|---|---|---|---|
| Access でレポートを印刷する時、ページ番号は Page/Pages 形式で振るのが一般的です。 ところが、グループ毎にページ番号を振りたいときがあります。 これは Access の標準の機能にはありません。 以下は、グループ毎のページ番号を、DAO を使ってページフッターに表示する方法です。 | |||
|
≪1.≫ レポートでグループ化するフィールド名を、[分類] とします。 このグループ別総ページ数格納用の新規テーブルを作成します。 ![]()
| |||
|
≪2.≫ 次に、レポートをデザイン画面で開きます。 この 「[分類] グループフッター」 の "改ページ" プロパティを [カレント セクションの後] に設定します。 | |||
|
≪3.≫ 続けて、レポートにコードを挿入します。 VBE画面の宣言セクションに、以下のコードを貼り付けてください。 Option Compare Database Option Explicit ' DAOを使ってグループ毎にページ番号を振る ' 2002/07/13 pPoy Dim DB As dao.Database Dim GrPages As dao.Recordset | |||
|
≪4.≫ 続けて、新規プロシージャを追加します。 以下のコードを宣言セクションの下に貼り付けてください。
Function GetGrPages()
' 頁番号表示用関数
GrPages.Seek "=", Me![分類]
If Not GrPages.NoMatch Then
GetGrPages = Me.Page & "/" & GrPages![頁番号]
End If
End Function
| |||
|
≪5.≫ レポートの "開く時" プロパティに下記のイベントプロシージャーを作成してください。
Private Sub Report_Open(Cancel As Integer)
'予め古い頁数の情報を削除し、インデックスを設定
Set DB = CurrentDb()
DB.Execute "DELETE * FROM [分類別リスト];"
Set GrPages = DB.OpenRecordset("分類別リスト", dbOpenTable)
GrPages.Index = "PrimaryKey"
End Sub
| |||
|
≪6.≫ [分類 ヘッダー] セクションの "フォーマット時" プロパティに下記のイベントプロシージャを 作成してください。
Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)
'ページ番号の初期化
Me.Page = 1
End Sub
| |||
|
≪7.≫ [ページ フッター] セクションの "フォーマット時" プロパティに下記のイベントプロシージャ を作成してください。
Private Sub ページフッター_Format(Cancel As Integer, FormatCount As Integer)
'頁番号格納用テーブルに、グループ毎の頁数を入力
GrPages.Seek "=", Me![分類]
If Not GrPages.NoMatch Then
If GrPages![頁番号] < Me.Page Then
GrPages.Edit
GrPages![頁番号] = Me.Page
GrPages.Update
End If
Else
GrPages.AddNew
GrPages![分類] = Me![分類]
GrPages![頁番号] = Me.Page
GrPages.Update
End If
End Sub
| |||
|
≪8.≫ 最後に、[ページ フッター] セクションに下記の2つのテキストボックスを作成してください。
| |||
これで、ページフッターには、分類 コード 品名 ------------------------------------------ 飲物 1 100%オレンジ 2 100%グレープ 3 100%レモン 〜〜〜〜〜〜〜〜〜〜〜 11 コーヒーミルク 12 美味しいお茶 ------------------------------------------ 1/3 | |||
|
ここで、最初に作ったページ番号管理用テーブル 「分類別リスト」 の中身は 以下のようになっています。 ![]() これは出力例です。 中身はページ数や分類の種類によって変わります。 | |||
≪注意≫
| |||
Copyright(C) pPoy 2002