Microsoft Access 掲示板

「余白に応じて行数指定無く用紙の最後まで罫線を出力する」の最下部横線太さについて / 1

5 コメント
views
4 フォロー
1

リンク先のサンプルのコードを下記のように修正しててみてください。

Option Compare Database
Option Explicit

Const A4Height As Long = 29.7 * 567 'A4・スp・ス・ス・スフ搾ソス・ス・ス=29.7cm 1cm=567twips
Dim PageHeight As Long
Dim BottomPos As Long '追加
Dim PageTop As Long   '追加

'ページフォーマット時イベント 追加
Private Sub Report_Page()
    BottomPos = BottomPos + PageTop
    Me.DrawWidth = 4 '罫線の太さを設定
    Me.Line (0, BottomPos)-(Me.Width, BottomPos)
End Sub

Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
    '印刷可能領域下辺のページ上端からの高さを取得
    On Error Resume Next
    PageHeight = A4Height - Me.Printer.BottomMargin
    PageHeight = PageHeight - Me.Section(acPageFooter).Height
    PageTop = Me.Top  '追加
End Sub

Private Sub グループフッター1_Format(Cancel As Integer, FormatCount As Integer)
    If Me.Top + Me.グループフッター1.Height <= PageHeight Then
        Me.NextRecord = False
        If FormatCount > 20 Then Me.NextRecord = True
        '↑想定外の動作で無限ループになった場合でも、20回で止まる
        BottomPos = Me.Top '追加
    Else
        Cancel = True
    End If
End Sub

'詳細のフォーマット時イベント 追加
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
    BottomPos = Me.Top - Me.詳細.Height
End Sub

Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
    Me.DrawWidth = 1
    Dim ctl As Control
    For Each ctl In Me.詳細.Controls
        If ctl.ControlType = acLine And ctl.Visible = False Then
            If ctl.Width = 0 Then Me.Line (ctl.Left, 0)-(ctl.Left, 14400)
        End If
    Next
End Sub
通報 ...
  • 2

    hatena 様

    お世話になっております。
    早々のご教授ありがとうございます。
    上記コードにてトライしてみます。
    また結果ご報告いたします。