Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Wer mit Access arbeitet, möchte in der Regel auch die enthaltenen Daten hübsch aufbereitet als Bericht präsentieren. Damit der Bericht erscheint, ist allerdings noch ein wenig Handarbeit nötig: Schließlich wollen Sie dem Benutzer Ihrer Datenbank ja hoffentlich nicht das Datenbankfenster oder den Navigationsbereich als Steuerzentrale anbieten, sondern das öffnen von Berichten und anderen Elementen per Menü, Ribbon oder schlicht von einem Formular aus ermöglichen. Dieser Artikel liefert die nötigen Grundlagen zum Anzeigen von Berichten.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1110_BerichteOeffnen.mdb.
Bericht, öffne Dich!
Zum öffnen von Formularen und Berichten gibt es im Wesentlichen zwei Möglichkeiten: per Doppelklick auf den entsprechenden Eintrag im Datenbankfenster (bis Access 2003) oder im Navigationsbereich (ab Access 2007) oder mit dem VBA-Befehl DoCmd.OpenForm beziehungsweise DoCmd.OpenReport. Dieser Artikel dreht sich um letztere Anweisung, die einen Bericht auf verschiedene Arten öffnet – und auf verschiedene Benutzeraktionen hin. Zum Testen öffnen Sie einfach den VBA-Editor, aktivieren das Direktfenster mit der Tastenkombination Strg + G und tippen dort einfach folgenden Befehl ein:
DoCmd.OpenReport ""
Uups – schon sendet Access den Bericht an den Drucker. Da der durchschnittliche Access-Entwickler in seiner Laufbahn wohl mindestens zehn Mal mehr Formulare als Berichte öffnet, vergisst er gern, dass DoCmd.OpenReport nur mit dem Berichtsnamen als Parameter den Bericht direkt druckt. Damit der Bericht nicht gedruckt, sondern in der Seitenansicht angezeigt wird, fügen Sie einen weiteren Parameter namens View hinzu und vergeben für diesen den Wert acViewPreview:
DoCmd.OpenReport "rptArtikel", View:=acViewPreview
Das funktioniert: Der Bericht erscheint in der Seitenansicht (siehe Bild 1). Wenn Sie die Seitenansicht eines Berichts etwa über die Schaltfläche eines Formulars öffnen möchten, erstellen Sie zunächst ein Formular mit einer Schaltfläche namens cmdSeitenansicht. Wählen Sie für die Eigenschaft Beim Klicken den Wert [Ereignisprozedur] aus und klicken Sie auf die Schaltfläche mit den drei Punkten (…) rechts neben der Eigenschaft.
Bild 1: Ein in der Seitenvorschau geöffneter Bericht
Die nun im VBA-Editor angezeigte leere Ereignisprozedur füllen Sie wie folgt:
Private Sub cmdSeitenansicht_Click() DoCmd.OpenReport "rptArtikel", _ View:=acViewPreview End Sub
Wenn Sie nun in die Formularansicht wechseln und die Schaltfläche betätigen, erscheint der Bericht wie oben beschrieben (siehe Formular frmBerichteOeffnen, Bericht rptArtikel).
Weitere Berichtsansichten
Neben der Seitenansicht, die Sie mit dem Wert acViewPreview für den Parameter View erhalten, gibt es noch einige weitere Ansichten:
- acViewDesign: Entwurfsansicht, dient der Anpassung des Entwurfs des Berichts.
- acViewLayout: Layoutansicht. Wurde mit Access 2007 eingeführt und erlaubt das Anpassen des Entwurfs, während der Bericht Daten anzeigt.
- acViewNormal: Druckt den Bericht.
- acViewPivotChart, acViewPivotTable: Werden als Paramter angeboten, funktionieren aber nicht.
- acViewPreview: öffnet die Seitenansicht des Berichts.
- acViewReport: öffnet die Berichtsansicht (seit Access 2007). Die Berichtsansicht erlaubt interaktiven Zugriff auf einen Bericht.
Angezeigte Daten einschränken
Es gibt zwei Möglichkeiten, die in einem Bericht anzuzeigenden Daten anzuzeigen. Beide legen Sie über einen Parameter der DoCmd.OpenForm-Methode fest:
- Filtername: Erwartet den Namen einer Abfrage, deren WHERE-Abschnitt als Filter verwendet wird.
- WhereCondition: Erwartet die Angabe eines SQL-Ausdrucks wie Artikelname LIKE ‘A*’.
Die Eigenschaft Filtername ist also eher für Benutzer gedacht, die SQL-Bedingungen lieber mit der Entwurfsansicht von Abfragen definieren, während WhereCondition die direkt Eingabe der SQL-Bedingung erlaubt.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo