HOME >Report >このページ
改ページコントロールを利用した改ページの方法

 

01.改ページコントロール
 改ページをしたい場所に「改ページコントロール」を配置します。レコードレベルで改ページしたいときは「詳細」に、グループレベルで改ページしたいときは、そのグループフッターあるいはグループヘッターに配置します。
 「改ページ」コントロールをレポートに配置すると、レポートの左端に、点線で「・・・・」のように表示されます。コントロールのデータを分割しないように、コントロール の上または下に配置します(右の図では下に配置しています)。 改ページコントロールを[詳細]セクション内の一番上に配置すれば、その行を印刷する前に改ページが行われ、一番下に配置するその行が印刷された後に改ページが行われます。
 VBで改ページするときは、この改ページコントロールの[Visible/可視]プロパティを「False」に設定しておき、改ページをしたいとき「True」に設定します。

(注)改ページコントロールのプロパティウィンドウには[Visible/可視]というプロパティは表示されません。またコード上で 「ドット」を入力すると表示される「プロパティ/メソッドの一覧」にも出てきませんが
 
Me.改ページ.Visible = True
のように手入力してください。
02.1ページに印刷するレコード数を指定してを印刷するには?(sample_03 sample_04)

印刷データに連番フィールド(ここでは名前を「CD」としておきます)があって、1,2,3,4、・・・のように連続した数値が格納されている場合、次のようにします。
  1. 上の図のように改ページコントロール(名前を「改ページ」としておきます)を配置します。
  2. 「並べ替え/グループ化ダイアログボックス」で、cdフィールドを選択し「昇順」を選択します。
  3. 詳細の印刷時イベントに次のようなコードを記述します。1ページ40行で印刷されます。
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  If Me!cd Mod 40 = 0 Then
     Me.改ページ.Visible = True
  Else
     Me.改ページ.Visible = False
  End If
End SubこれをVBAで実行するには
印刷データに上のような連番フィールドが無い場合は、あるいはあってもこれを使用しない場合は、次のようにします。
  1. 上の図のように改ページコントロール(名前を「改ページ」としておきます)を配置します。
  2. 宣言セクションでモジュールレベルの変数「lngcount」(行数カウント用)を宣言します。
Option Compare Database
Option Explicit
Dim lngcount As Long
  1. レポートヘッダーのフォーマット時イベントにつぎのコードを記述します。。
Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
 lngcount = 0
 Me.改ページ.Visible = False
End Sub
  1. 詳細のフォーマット時イベントに次のコードを記述します。
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  lngcount = lngcount + 1
  If lngcount = 30 Then
     Me.改ページ.Visible = True
     lngcount = -1
  Else
     Me.改ページ.Visible = False
  End If
End Sub
【解説】1ページ30行で印刷されます。「 lngcount = -1」の部分を「 lngcount = 0」に変更すると2ページ目から1ページに29行しか印刷されてしまいます。
03.レポートをグループごとに改ページしてを印刷するには?(sample_05)

レポートを、グループ毎に改ページして印刷するには、次のようにします。
  1. 「並べ替え/グループ化ダイアログボックス」でグループ化したいフィールドを選択して、グループヘッダー、グループフッターを「はい」に設定します。
  2. グループフッターに改ページコントロール(名前を「改ページ」としておきます)を配置します。フッターの高さは最小限に調整しておきます。この高さが高い場合、途中に空白ページができる場合があります。
  3. レポートヘッダーのフォーマット時イベントに次のコードを記述します。
Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
  Me.改ページ.Visible = True
End Sub


ホームページに|前のページに|次のページに

CopyRight(C) 2004 cbcnet. All Rights Reserved