Report-Objekt (Access)Report object (Access)

Ein Report-Objekt verweist auf einen bestimmten Microsoft Access-Bericht.A Report object refers to a particular Microsoft Access report.

BemerkungenRemarks

Ein Report -Objekt ist ein Mitglied der Reports -Auflistung, bei der es sich um eine Sammlung aller aktuell geöffneten Berichte handelt.A Report object is a member of the Reports collection, which is a collection of all currently open reports. Die einzelnen Berichte in der Auflistung Reports werden durch einen bei Null beginnenden Index nummeriert.Within the Reports collection, individual reports are indexed beginning with zero. Sie verweisen auf einzelne Report -Objekte in der Auflistung Reports über den Berichtsnamen oder über den Index des Berichts innerhalb der Auflistung.You can refer to an individual Report object in the Reports collection either by referring to the report by name, or by referring to its index within the collection. Enthält der Berichtsname Leerzeichen, so muss der Name in eckigen Klammern ([ ]) stehen.If the report name includes a space, the name must be surrounded by brackets ([ ]).

SyntaxSyntax BeispielExample
Berichte! Berichts NameReports!reportname Reports!OrderReportReports!OrderReport
Berichte! [Berichtsname]Reports![report name] Reports![Bericht Bestellungen]Reports![Order Report]
Berichte ("_Berichts_Name")Reports("reportname") Reports("OrderReport")Reports("OrderReport")
Berichte (Index)Reports(index) Reports(0)Reports(0)

Hinweis

Jedes Report-Objekt verfügt über eine Controls -Sammlung, die alle Steuerelemente im Bericht enthält.Each Report object has a Controls collection, which contains all controls on the report. Sie können auf ein Steuerelement in einem Bericht verweisen, indem Sie entweder implizit oder explizit auf die Controls-Sammlung verweisen.You can refer to a control on a report either by implicitly or explicitly referring to the Controls collection. Der Code ist effizienter, wenn Sie implizit auf die Controls -Auflistung verweisen.Your code will be faster if you refer to the Controls collection implicitly. Im folgenden Beispiele werden zwei Möglichkeiten dargestellt, um auf das Steuerelement NewData im Formular OrderReport zu verweisen:The following examples show two of the ways you might refer to a control named NewData on a report called OrderReport.

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

BeispielExample

Im folgenden Beispiel wird gezeigt, wie das NODATA -Ereignis eines Berichts verwendet wird, um zu verhindern, dass der Bericht geöffnet wird, wenn keine Daten angezeigt werden.The following example shows how to use the NoData event of a report to prevent the report from opening when there is no data to be displayed.

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

Im folgenden Beispiel ist die Verwendung des Page-Ereignisses zum Hinzufügen eines Wasserzeichens zu einem Bericht dargestellt, bevor dieser gedruckt wird.The following example shows how to use the Page event to add a watermark to a report before it is printed.

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

Das folgende Beispiel zeigt, wie die BackColor-Eigenschaft eines Steuerelements basierend auf seinem Wert festgelegt wird.The following example shows how to set the BackColor property of a control based on its value.

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

Im folgenden Beispiel wird gezeigt, wie ein Bericht so formatiert wird, dass Statusanzeigen angezeigt werden.The following example shows how to format a report to show progress bars. In dem Beispiel wird ein Paar von rechteckigen Steuerelementen, boxInside und boxOutside zum Erstellen einer Statusanzeige basierend auf dem Wert von AvgOfRating verwendet.The example uses a pair of rectangle controls, boxInside and boxOutside, to create a progress bar based on the value of AvgOfRating. Die Statusanzeigen sind nur dann sichtbar, wenn der Bericht im Modus Seitenansicht geöffnet ist oder gedruckt wird.The progress bars are visible only when the report is opened in Print Preview mode or it is printed.

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

EreignisseEvents

MethodenMethods

EigenschaftenProperties

Siehe auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.