罫線を最後まで印字


概要:
    レポート印刷において最後まで罫線を引く方法です。
    Accessではレコード数に応じた行数しか印刷されません。空白行までも印字したいといったケース
    もある場合にはご参考にして下さい。
    ここでは住所録のレポートをサンプルとしてご紹介します。


方法としてはレポートフッターセクションを利用します。このセクションに空白行を用意して印字可能行
数分だけ、残りを印字させるといった仕組みです。

もう少し具体的にご説明すると以下の様な手順となります。

1.印刷プレビューで1枚に何行収まるか確認する。
サンプルデータベースの場合32行となります。(A4縦、上下余白20mm)

 

2.レポートをデザインビューで開き、詳細セクションのコントロールを全選択してコピーする。

 

3.複製したコントロールをレポートフッターセクションに貼り付ける。

 

4.レポートフッターに配置した罫線以外のコントロールを複数選択して削除する。

 

5.詳細セクションとレポートフッターに配置した罫線の配置をそろえる。またセクションの高さも同じにする。

6.[詳細]、[ページフッター]、[レポートフッター]セクションのフォーマット時イベントプロシージャ等のコードを記述する。

Option Compare Database
Option Explicit

'ページ印字可能行数の設定
Const AblGyou = 32
'行数カウント変数
Dim GyouCnt As Integer

Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer)
  '行数カウント数のクリア
  GyouCnt = 0
End Sub

Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer)
  '総行数がページ印字可能行数と同じ場合
  If GyouCnt = AblGyou Then
    '行数カウント数のクリア
    GyouCnt = 0
    '空白行を印字しない
    Me.MoveLayout = False
    Me.PrintSection = False
  Else
    '行数カウントを加える
    GyouCnt = GyouCnt + 1
    'ページ行数に満たない場合、空白行を印字
    If GyouCnt < AblGyou Then
      '次のレコードへ移動設定を無効とする
      Me.NextRecord = False
      '次の印刷位置への移動設定を有効とする
      Me.MoveLayout = True
      'セクション印刷の設定を有効とする
      Me.PrintSection = True
    Else
      '行数カウント数のクリア
      GyouCnt = 0
    End If
  End If

End Sub

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
'行数カウントを加える
  GyouCnt = GyouCnt + 1
End Sub

    ※ DownLoad の「keisen.zip」で動作を確認してみて下さい。


戻る