Auf Englisch lesen

Freigeben über


Berichtsobjekt (Access)

Ein Report-Objekt verweist auf einen bestimmten Microsoft Access-Bericht.

Hinweise

Ein Report-Objekt ist ein Element der Reports-Auflistung , bei der es sich um eine Auflistung aller derzeit geöffneten Berichte handelt. Die einzelnen Berichte in der Auflistung Reports werden durch einen bei Null beginnenden Index nummeriert. Verweisen Sie auf ein einzelnes Report-Objekt in der Reports-Auflistung , indem Sie entweder anhand des Namens auf den Bericht verweisen oder auf seinen Index innerhalb der Auflistung verweisen. Enthält der Berichtsname Leerzeichen, so muss der Name in eckigen Klammern ([ ]) stehen.

Syntax Beispiel
Berichte! Berichtsname Reports!OrderReport
Berichte! [Berichtsname] Reports![Bericht Bestellungen]
Berichte("Berichtsname") Reports("OrderReport")
Berichte(index) Reports(0)

Hinweis

Jedes Report-Objekt verfügt über eine Controls -Sammlung, die alle Steuerelemente im Bericht enthält. Verweisen Sie auf ein Steuerelement in einem Bericht, indem Sie implizit oder explizit auf die Controls-Auflistung verweisen. Ihr Code wird schneller ausgeführt, wenn Sie implizit auf die Controls-Sammlung verweisen. Im folgenden Beispiele werden zwei Möglichkeiten dargestellt, um auf das Steuerelement NewData im Formular OrderReport zu verweisen:

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

Beispiel

Im folgenden Beispiel wird gezeigt, wie sie das NoData-Ereignis eines Berichts verwenden, um zu verhindern, dass der Bericht geöffnet wird, wenn keine Daten angezeigt werden.

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.

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.

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. In dem Beispiel wird ein Paar von rechteckigen Steuerelementen, boxInside und boxOutside zum Erstellen einer Statusanzeige basierend auf dem Wert von AvgOfRating verwendet. Die Statusanzeigen sind nur dann sichtbar, wenn der Bericht im Modus Seitenansicht geöffnet ist oder gedruckt wird.

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

Ereignisse

Methoden

Eigenschaften

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.