Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


5レコードごとに改ページする : Access裏技Tips



レポートには、残念ながら特定のレコード数で改ページする機能が備わっていません。 ここでは、改ページコントロールを用いて5レコードごとに改ページする技をご紹介します。

5レコードごとに改ページする

  1. サンプルテーブル(tbl_sample)をもとにして、「社員別都道府県出身地リスト」の 帳票レポート(rpt_sample)を作成します。
  2. 次に、詳細セクションに改ページコントロール(ctl改ページ)を作成します。
  3. フォームを作成し、コンボボックス(cmb選択)を配置します。
  4. このフォームで、レポート1ページに表示するレコード数をドロップダウンリストから選択し、この選択値をもとに改ページを行います。

「社員別都道府県出身地リスト」の レポートを作成

  1. 「社員別都道府県出身地リスト」のレポートを作成します。
  2. サンプルデータを元に、社員別都道府県出身地リストを作成します。
  3. 詳細セクションに改ページコントロールを配置します。

レポートのイベントプロシージャの宣言セクションに変数を作成

レポートのイベントプロシージャの宣言セクションに変数を作成します。

Option Compare Database
Option Explicit

Dim intCount As Integer ' --- A
解説
  1. 整数型の変数を作成します。レポートが開いている間、値を保持するために宣言セクション内に変数を定義しています。

レポートを開くイベントプロシージャの作成

レポートを開くイベントプロシージャを作成します。

Private Sub Report_Open(Cancel As Integer)

    Me.ctl改ページ.Visible = False ' --- A

End Sub
解説
  1. 改ページコントロールの初期値を非表示設定にします。表示させると改ページが行えません。
今回のおすすめポイント

改ページコントロール

改ページコントロールの使い方のポイントは、どの時点で非表示設定から表示設定に切り替えるかです。

ページヘッダー印刷時イベントプロシージャの作成

ページヘッダー印刷時イベントプロシージャの作成

Private Sub ページヘッダー_Print(Cancel As Integer, PrintCount As Integer)

    intCount = 1 ' --- A

End Sub

解説
  1. 変数intCountの初期値を1に定めます。ページヘッターに組み込むことで、改ページ毎に初期化されます。

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

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

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

    Select Case intCount
        Case Is >= Forms![frm_sample]![cmb選択]
            Me.ctl改ページ.Visible = True ' --- A
        Case Else
            Me.ctl改ページ.Visible = False ' --- B
    End Select

    intCount = intCount + 1 ' --- C
    
End Sub
解説
  1. 変数intCountの値が、コンボボックスで選択した値を超えれば、ctl改ページコントロールを表示します。
  2. 変数intCountの値が、コンボボックスで選択した値未満であれば、ctl改ページコントロールを非表示にします。
  3. 1レコード毎に、変数intCountに1を加えます。

「表示件数選択フォーム」の フォームを作成

  1. 「表示件数選択フォーム」の フォームを作成します。
  2. 非連結フォームを作成し、コンボボックスを配置します。

コンボボックス更新後処理イベントプロシージャの作成

コンボボックス更新後処理イベントプロシージャを作成します。

Private Sub cmb選択_AfterUpdate()

    Dim strmsg As String    
    strmsg = Me.cmb選択.Column(0) ' --- A
    strmsg = strmsg & "レコード単位で改行します。" ' --- B

    If 1 <> MsgBox(strmsg, 49) Then End
    DoCmd.OpenReport "rpt_sample", acPreview, "", ""
    
End Sub
解説
  1. Columnプロパティを利用して、コンボボックスで選択された値を変数strmsgに代入します。
  2. &(アンバサダ)を用いて結合させています。
今回のおすすめポイント

変数に変数を代入

「strmsg = strmsg & "レコード単位で改行します。"」は、変数に変数を代入してい る構文です。
右辺の変数strmsgには、上段の「Me.cmb選択.Column(0)」が格納されています。 左辺の変数strmsgには、「Me.cmb選択.Column(0) & "レコード単位で改行します。"」が代入されます。
一行が長くなる場合や視認性の点で、変数に変数を代入することがよく行われます。

動作確認

  1. フォームをフォームビューに切り替えます。
  2. コンボボックスから5を選択します。

  1. メッセージボックスが開きますので、[OK]ボタンをクリックします。

  1. 社員別都道府県出身地リスト」の 帳票レポートが開きます。

今回のおすすめポイント

Dropdownメソッド

コンボボックスの内容を一覧表示(ドロップダウンリスト)します。 コンボボックスのフォーカス取得時イベントプロシージャで利用します。

Private Sub cmb選択_Enter()

    Me.cmb選択.Dropdown

End Sub

関連ページ

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

 


5レコードごとに改ページする : Access裏技Tips


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。