Sibainu Relax Room

柴犬と過ごす

Access 詳細のプリント1

詳細のNextRecord

プリント詳細のレコードの進行をフォーマット時にコントロールします。

copy

'1ページに印刷したセクション数を格納する変数
Private iCount      As Integer
'印刷するトータルセクション数を格納する変数
Private tCount      As Integer
'1ページに印刷するセクション数を格納する変数
Private Gyo         As Integer

Private Sub Report_Open(CANCEL As Integer)
    Dim RS      As DAO.Recordset
    Dim mySQL   As String

    'セクション数を16にセットします。
    Gyo = 16

    'レポートのレコードソースをセットします。
    mySQL = "SELECT A.* FROM A;"
    Me.RecordSource = mySQL

    'トータルのセクション数を取得します。
    Set RS = CurrentDb.OpenRecordset(mySQL, dbOpenSnapshot)
    If Not RS.BOF Then
        RS.MoveLast
        tCount = RS.RecordCount
    End If
    RS.Close
    Set RS = Nothing
       
End Sub

Private Sub レポートヘッダー_Format(CANCEL As Integer, FormatCount As Integer)

    iCount = 0

End Sub

'CPage は改行コントロール
Private Sub 詳細_Format(CANCEL As Integer, FormatCount As Integer)
    Dim mySQL As String

    iCount = iCount + 1
    If iCount < tCount Then
        'レポート最後の前までの処理

        Ctrl_visible True

        '1ページのセクション数が Gyo になったら改行
        If iCount Mod Gyo = 0 Then
            Me.CPage.Visible = True
        Else
            Me.CPage.Visible = False
        End If
        Me.NextRecord = True
        
    ElseIf iCount = tCount Then
        'レポート最後のセクションの処理

        Ctrl_visible True
 
        If iCount Mod Gyo = 0 Then
            Me.CPage.Visible = True
            Me.NextRecord = True

        Else
            Me.CPage.Visible = False
            Me.NextRecord = False

        End If
        
    ElseIf iCount > tCount Then
        'レポート最後の後処理

        Ctrl_visible False

        If iCount Mod Gyo = 0 Then
            Me.CPage.Visible = True
            Me.NextRecord = True

        Else
            Me.CPage.Visible = False
            Me.NextRecord = False

        End If
        
    End If

End Sub

Private Sub Ctrl_visible(bool As Boolean)

    Me("コントロール名").Visible = bool

End Sub