Details aus dem Unterformular öffnen

Ein Unterformular kann einige Daten anzeigen, aber oft ist die Breite des Unterformulars begrenzt und der Benutzer muss scrollen, um die nicht sichtbaren Spalten zu lesen. Das ist nicht unbedingt komfortabel. Manchmal soll dann doch ein Detailformular die Daten zu einem Datensatz in übersichtlicher Form anzeigen. Wie aber öffnen wir das Detailformular zu einem Datensatz vom Unterformular aus Und wie aktualisieren wir das Unterformular, wenn wir den geöffneten Datensatz im Detailformular geändert haben All dies zeigt der vorliegende Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1803_OeffnenAusUnterformular.accdb.

Haupt- und Unterformular erstellen

Das Unterformular soll den Namen sfmArtikel erhalten und alle Datensätze der Tabelle tblArtikel anzeigen. Dazu stellen Sie die Eigenschaft Datenherkunft des Unterformulars auf die Tabelle tblArtikel ein. Wechseln Sie dann zur Anzeige der Feldliste und ziehen Sie alle Einträge dieser Liste in den Detailbereich der Entwurfsansicht des Formulars (siehe Bild 1). Die Anordnung spielt in diesem Fall kenie besondere Rolle, da wir durch Einstellen der Eigenschaft Standardansicht auf den Wert Datenblatt ohnehin dafür sorgen, dass die Datensätze im Unterformular in der Datenblatt-Ansicht erscheinen.

Formular-Entwurf des Unterformulars sfmArtikel

Bild 1: Formular-Entwurf des Unterformulars sfmArtikel

Schließen Sie dann das Formular und öffnen Sie ein neues, leeres Formular in der Entwurfsansicht. Dieses speichern wir unter dem Namen frmArtikel. Fügen Sie dann das Unterformular hinzu, in dem Sie dieses aus dem Navigationsbereich in den Detailbereich des Formularentwurfs ziehen (siehe Bild 2).

Hinzufügen des Unterformulars zum Hauptformular

Bild 2: Hinzufügen des Unterformulars zum Hauptformular

Damit das Unterformular beim Vergrößern des Hauptformulars mitwächst, stellen wir seine beiden Eigenschaften Horizontaler Anker und Vertikaler Anker auf Beide ein.

Detailformular erstellen

Das Detailformular erstellen Sie ebenfalls als neues, leeres Formular, das Sie unter dem Namen frmArtikeldetails speichern. Fügen Sie der Datenherkunft ebenfalls die Tabelle tblArtikel hinzu und ziehen Sie alle Felder der Datenquelle aus der Feldliste in den Formularentwurf. Außerdem legen wir im Detailformular noch eine OK-Schaltfläche namens frmOK an (siehe Bild 3).

Entwurf des Detailformulars

Bild 3: Entwurf des Detailformulars

Details per Schaltfläche anzeigen

Schließen Sie das Detailformular und öffnen Sie erneut das Formular mit dem Unterformular. über dem Formular fügen wir nun eine Schaltfläche zum Anzeigen der Details des jeweils markierten Datensatzes im Unterformular ein. Sie erhält den Text Details anzeigen und den Namen cmdDetailsAnzeigen.

Außerdem stellen Sie den Wert der Eigenschaft Beim Klicken auf [Ereignisprozedur] ein und legen durch einen Klick auf die Schaltfläche mit den drei Punkten () rechts von der Eigenschaft die Ereignisprozedur cmdDetailsAnzeigen_Click an. Um einfach nur das Detailformular mit dem aktuell im Unterformular markierten Datensatz zu öffnen, ergänzen Sie die Prozedur wie folgt:

Private Sub cmdDetailsAnzeigen_Click()
    Dim lngArtikelID As Long
    lngArtikelID =                    Me!sfmArtikel.Form!ArtikelID
    DoCmd.OpenForm "frmArtikeldetails",               WhereCondition:="ArtikelID = "                                 & lngArtikelID
End Sub

Die Prozedur ermittelt den Wert des Primärschlüsselfeldes des aktuell im Unterformular ausgewählten Datensatzes. Das Unterformular-Steuerelement referenzieren wir mit Me!sfmArtikel, das darin enthaltene Unterformular mit Me!sfmArtikel.Form und das Feld schließlich mit Me!sfmArtikel.Form!ArtikelID. Diesen Wert speichern wir in der Variablen lngArtikel. Diese nutzen wir in der folgenden DoCmd.OpenForm-Anweisung als Teil des Kriteriums “ArtikelID = ” & lngArtikelID. Damit öffnen wir per Mausklick das Detailformular mit dem aktuellen Datensatz, was wie in Bild 4 aussieht.

Aufruf des Detailformulars

Bild 4: Aufruf des Detailformulars

Ein Problem kann hier auftreten, nämlich dann, wenn der Benutzer die Schaltfläche betätigt, wenn sich der Datensatzzeiger gerade auf einem neuen, leeren Datensatz befindet. Dann erscheint nämlich die Fehlermeldung aus Bild 5. Der Fehler resultiert daraus, dass das Feld ArtikelID für den neuen, leeren Datensatz noch den Wert Null enthält. Wenn wir dies einer Variable des Typs Long zuweisen, erhalten wir den hier vorliegenden Fehler.

Fehler beim Aufruf eines leeren Datensatzes

Bild 5: Fehler beim Aufruf eines leeren Datensatzes

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar