VBA für Access

Das Objektmodell von Access: Öffnen und Schließen von Berichten

∅ 3.4 / 6 Bewertungen

Öffnen und Schließen von Berichten

Wie kann ich einen Bericht öffnen? Wie kann ich einen Bericht schließen?

Einen Bericht öffnen

' Variante 1 
DoCmd.OpenReport "Rechnungen"
' Variante 2 
Dim rptR As Report
Set rptR = New Report_Rechnungen
rptR.Visible = True
rptR.Print ' Optional

Für das Öffnen eines Berichts gibt es zwei Möglichkeiten: Die erste ist die Aktion DoCmd.OpenReport "Berichtname". Ein mit DoCmd.OpenReport geöffneter Bericht kann mit DoCmd.Close acReport, "Berichtname" wieder geschlossen werden.

Die zweite Methode ist zwar etwas komplizierter, dafür aber flexibler. Dabei nutzt man aus, dass jeder Bericht, der bereits ein Modul hat, auch ein Objekt der Klasse Report_Berichtname ist. Man kann daher eine Variable dieser Klasse deklarieren und anschließend ein neues Objekt dieser Klasse erstellen:

Dim rptR As Report_Berichtname

Set rptR = New Report_Berichtname

oder einfach:

Dim rptR As New Report_Berichtname

Enthält der Berichtname Zeichen, die in Visual Basic als Bezeichner nicht zulässig sind (z. B. Leerzeichen), muss der gesamte Klassenname in eckigen Klammern geschrieben werden.

Anschließend muss der Bericht aber noch über die Eigenschaft Visible eingeblendet werden:

rptR.Visible = True

Auf diese Weise können auch mehrere Instanzen des Berichts geöffnet werden. Um einen auf diese Weise geöffneten Bericht wieder zu schließen, setzt man die Objektvariable auf Nothing: Set rptR= Nothing.

Gültigkeitsdauer von Variablen beachten!

Beachten Sie unbedingt die Gültigkeitsdauer von Variablen! Soll ein Bericht auch nach dem Ende der laufenden Prozedur geöffnet bleiben, muss er entweder einer statischen Prozedurvariablen, einer Modul-Variablen oder einer globalen Variablen zugewiesen werden.