window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Berichtsansicht im Unterformular

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

In den Artikeln Berichtsansicht und Aufgabenplaner haben wir uns mit der Berichtsansicht beschäftigt. Diese wird umso interessanter, da man sie über ein Unterformular-Steuerelement in einem Formular integrieren kann. Dies schauen wir uns in diesem Artikel genauer an. Wir bauen dabei die Lösung aus dem Artikel Aufgabenplaner weiter aus, indem wir den dort vorgestellten Bericht als Unterformular in ein Formular einbetten, mit dem wir weitere Funktionen zur Lösung hinzufügen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1801_BerichtsansichtImUnterformular.accdb.

Berichte im Unterformular

In Access-Versionen älter als Access 2010 war es nicht möglich, Berichte im Unterformular anzuzeigen. Dies gelingt nun jedoch recht einfach – und zwar genau wie das Hinzufügen eines Unterformulars zu einem Formular.

In diesem Fall wollen wir direkt auf der Lösung aus dem Artikel Aufgabenplaner aufsetzen, in dem wir eine kleine Lösung basierend auf einem Bericht als Benutzeroberfläche gebaut haben. Diesen Bericht wollen wir nun in einem Unterformular zu einem Formular namens frmAufgabenplaner hinzufügen.

Dieses Formular bereiten wir vorher kurz vor: Da es nicht an eine Datenquelle gebunden sein soll und somit auch keine Daten anzeigt, stellen wir die Eigenschaften Bildlaufleisten, Navigationsschaltflächen, Datensatzmarkierer und Trennlinien auf Nein und die Eigenschaft Automatisch zentrieren auf Ja ein. Danach ziehen wir einfach den Bericht rptAufgabenplaner aus dem Navigationsbereich in den Entwurf des Formulars hinein.

Das Ergebnis sieht etwa wie in Bild 1 aus. Was ist hier geschehen Access hat beim Fallenlassen des Berichts rptAufgabenplaner automatisch ein Unterformular-Steuerelement zum Formular hinzufügt und für die Eigenschaft Herkunftsobjekt dieses Steuerelements den Wert Bericht.rptAufgabenplaner eingestellt. Dadurch zeigt das Unterformular nun den Entwurf des Berichts rptAufgabenplaner an.

Hinzufügen eines Berichts zu einem Formular als Unterformular

Bild 1: Hinzufügen eines Berichts zu einem Formular als Unterformular

Kleine Korrekturen

Wie Sie sehen, zeigt dieses oben im Seitenkopfbereich die überschrift Aufgabenplaner an, die wir in diesem Kontext nicht benötigen. Außerdem bietet der Seitenkopfbereich noch die Schaltfläche cmdNeu zum Hinzufügen neuer Aufgaben zur Tabelle tblAufgaben. Wir wollen den Seitenkopf-Bereich nun komplett aus dem Bericht entfernen. Die überschrift können wir ersatzlos löschen, die Schaltfläche fügen wir dem Hauptformular hinzu. Außerdem wollen wir, dass sich die Höhe des Unterberichts automatisch an die Höhe des Formulars anpasst, wozu wir die Eigenschaft Vertikaler Anker des Unterformular-Steuerelements auf den Wert Beide einstellen. Eine Anpassung des horizontalen Ankers ist in diesem Fall nicht nötig, da die Steuer-elemente im Bericht selbst nicht angepasst werden können – es gibt im Bericht schlicht keine passenden Eigenschaften. In der Entwurfsansicht sieht das Formular nun wie in Bild 2 aus.

Ausgerichteter Unterbericht

Bild 2: Ausgerichteter Unterbericht

Den Code der Schaltfläche cmdNeu müssen wir etwas anpassen, da wir nach dem Anlegen der neuen Aufgabe ja nicht mehr das Objekt aktualisieren wollen, in dem die Prozedur ausgeführt wird, sondern den im Unterformular-Steuerelement befindlichen Bericht. Dies sieht dann wie folgt aus:

Private Sub cmdNeu_Click()
    DoCmd.OpenForm "frmAufgabe", WindowMode:=acDialog,                                       DataMode:=acFormAdd
    Me!rptAufgabenplaner.Report.Requery
End Sub

Die Requery-Methode wird also für das Report-Objekt im Unterformular-Steuerelement rptAufgabenplaner ausgelöst. Das das Unterformular-Steuerelement mit rptAufgabenplaner benannt wurde, liegt schlicht daran, dass die Unterformular-Steuerelemente für Objekte, die aus dem Navigationsbereich in ein Formular gezogen werden, automatisch den Namen des gezogenen Objekts erhalten.

Interessanterweise gibt es aber für im Unterformular-Steuerelement befindliche Berichte eine eigene Eigenschaft zum Referenzieren, nämlich Report.

Aus optischen Gründen haben wir auch noch die Eigenschaft Rahmenart des Unterformular-Steuerelements auf Transparent eingestellt, sodass das Formular in der Formularansicht wie in Bild 3 aussieht.

Der neu gestaltete Bericht im Hauptformular mit Neu-Schaltfläche

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

Schreibe einen Kommentar