英語で読む

次の方法で共有


レポート オブジェクト (Access)

Report オブジェクトは Microsoft Office Access の特定のレポートを参照するために使用します。

注釈

Report オブジェクトは Reports コレクションのメンバーであり、現在開いているすべてのレポートのコレクションです。 Reports コレクション内で、個々のレポートのインデックスは 0 から始まります。 レポートを名前で参照するか、コレクション内のインデックスを参照して、Reports コレクション内の個々の Report オブジェクトを参照します。 レポート名にスペースが含まれている場合、名前を角かっこ ([ ]) で囲む必要があります。

構文
レポート!reportname Reports!OrderReport
レポート![レポート名] Reports![受 注]
Reports("reportname") Reports("OrderReport")
Reports(index) Reports(0)

注意

Report オブジェクトには、レポート上のすべてのコントロールが含まれる Controls コレクションがあります。 Controls コレクションを暗黙的または明示的に参照して、レポートの コントロール を参照します。 Controls コレクションを暗黙的に参照するほうが、コードの処理速度は速くなります。 次の例は、OrderReport レポートの NewData コントロールを参照する 2 とおりの方法です。

' Implicit reference. 
Reports!OrderReport!NewData
' Explicit reference. 
Reports!OrderReport.Controls!NewData

次の例は、レポートの NoData イベントを使用して、表示するデータがないときにレポートが開かないようにする方法を示しています。

Private Sub Report_NoData(Cancel As Integer)

    'Add code here that will be executed if no data
    'was returned by the Report's RecordSource
    MsgBox "No customers ordered this product this month. " & _
        "The report will now close."
    Cancel = True

End Sub

次の例は、Page イベントを使用して、印刷前にウォーターマークをレポートに追加する方法を示します。

Private Sub Report_Page()
    Dim strWatermarkText As String
    Dim sizeHor As Single
    Dim sizeVer As Single

#If RUN_PAGE_EVENT = True Then
    With Me
        '// Print page border
        Me.Line (0, 0)-(.ScaleWidth - 1, .ScaleHeight - 1), vbBlack, B
    
        '// Print watermark
        strWatermarkText = "Confidential"
        
        .ScaleMode = 3
        .FontName = "Segoe UI"
        .FontSize = 48
        .ForeColor = RGB(255, 0, 0)

        '// Calculate text metrics
        sizeHor = .TextWidth(strWatermarkText)
        sizeVer = .TextHeight(strWatermarkText)
        
        '// Set the print location
        .CurrentX = (.ScaleWidth / 2) - (sizeHor / 2)
        .CurrentY = (.ScaleHeight / 2) - (sizeVer / 2)
    
        '// Print the watermark
        .Print strWatermarkText
    End With
#End If

End Sub

次の例は、コントロールの BackColor プロパティを、その値に基づいて設定する方法を示します。

Private Sub SetControlFormatting()
    If (Me.AvgOfRating >= 8) Then
        Me.AvgOfRating.BackColor = vbGreen
    ElseIf (Me.AvgOfRating >= 5) Then
        Me.AvgOfRating.BackColor = vbYellow
    Else
        Me.AvgOfRating.BackColor = vbRed
    End If
End Sub

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    ' size the width of the rectangle
    Dim lngOffset As Long
    lngOffset = (Me.boxInside.Left - Me.boxOutside.Left) * 2
    Me.boxInside.Width = (Me.boxOutside.Width * (Me.AvgOfRating / 10)) - lngOffset
    
    ' do conditional formatting for the control in print preview
    SetControlFormatting
End Sub

Private Sub Detail_Paint()
    ' do conditional formatting for the control in report view
    SetControlFormatting
End Sub

次の例は、進行状況バーを表示するようにレポートを書式設定する方法を示します。 この例では、boxInsideboxOutside のペアの四角形コントロールを使用して、AvgOfRating の値に基づく進行状況バーを作成します。 進行状況バーは、レポートが印刷プレビュー モードで開かれるか、印刷されるときだけ表示されます。

Private Sub Report_Load()
    If (Me.CurrentView = AcCurrentView.acCurViewPreview) Then
        Me.boxInside.Visible = True
        Me.boxOutside.Visible = True
    Else
        Me.boxInside.Visible = False
        Me.boxOutside.Visible = False
    End If
End Sub

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    ' size the width of the rectangle
    Dim lngOffset As Long
    lngOffset = (Me.boxInside.Left - Me.boxOutside.Left) * 2
    Me.boxInside.Width = (Me.boxOutside.Width * (Me.AvgOfRating / 10)) - lngOffset
    
    ' do conditional formatting for the control in print preview
    SetControlFormatting
End Sub

イベント

メソッド

プロパティ

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。