Geteilte Formulare

In vielen Anwendungsfällen ist es praktisch, wenn man die gleichen Daten in einer übersichtsliste und auch noch im Detail vorfindet. Unter Access erledigt man das normalerweise mit einem Detailformular, das in einem Unterformular oder auch in einem Listenfeld alle Datensätze der zugrunde liegenden Tabelle zur Auswahl anbietet. Mit Access 2007 hat Microsoft die so genannten geteilten Formulare eingeführt – ein Hybrid aus Detailformular und Datenblattansicht. Dieser Beitrag zeigt, wie Sie ein solches Formular erstellen und welche Möglichkeiten es bietet.

Geteiltes Formular anlegen

Wenn Sie einer Datenbank ein geteiltes Formular hinzufügen möchten, müssen Sie zunächst die Tabelle oder Abfrage, welche die Daten für das Formular liefert, im Navigationsbereich markieren.

Anschließend klicken Sie im Ribbon (hier unter Access 2010) auf den Eintrag Er-stel-len|Formulare|Weitere For-mu-la-re|Ge-teiltes Formular – s. Bild 1.

Diese Meldung erscheint, wenn Sie ein Memofeld mit der Richtext-Formatierung ausstatten.

Bild 1: Diese Meldung erscheint, wenn Sie ein Memofeld mit der Richtext-Formatierung ausstatten.

Das Ergebnis sieht dann wie in Bild 2 aus: Im oberen Bereich finden Sie die Detailansicht eines Datensatzes, der untere Bereich enthält die Datenblattansicht der als Datenherkunft verwendeten Tabelle oder Abfrage. Wenn Sie den Datensatz im Detailbereich oder auch im Datenblatt des Formulars wechseln, geschieht dies synchron auch mit dem Datensatz im jeweils anderen Bereich.

Ein per Assistent erstelltes geteiltes Formular

Bild 2: Ein per Assistent erstelltes geteiltes Formular

Das Interessante dabei ist: Das Formular enthält, obwohl es scheinbar ein Unterformular enthält, nur eine Navigationsleiste. Außerdem finden Sie einen Markierer vor, mit dem Sie die Höhe der beiden Bereiche einstellen können.

Eigenschaften von geteilten Formularen

Geteilte Formulare haben sicher einige spezielle Eigenschaften. Um diese zu untersuchen, schauen wir uns das Formular in der Entwurfsansicht an. Dort treffen wir eine überraschung an: Der Entwurf sieht genauso aus wie der eines herkömmlichen Formulars in der Formularansicht (s. Bild 3).

Entwurfsansicht des geteilten Formulars

Bild 3: Entwurfsansicht des geteilten Formulars

Im nächsten Schritt betrachten wir die Eigenschaften des Formulars – mehr bleibt uns nicht übrig, da es ja anscheinend kein eigenes Steuerelement für das Datenblatt gibt.

Das Eigenschaftsfenster liefert zunächst die Erkenntnis, dass die Einstellung der Eigenschaft Standardansicht auf den Wert Geteiltes Formular wohl für die entsprechende Ansicht verantwortlich ist (s. Bild 4).

Eigenschaften des geteilten Formulars

Bild 4: Eigenschaften des geteilten Formulars

Diese Eigenschaft heißt unter VBA DefaultView, für ein geteiltes Formular geben Sie hier den Wert 5 an.

Höhe des Teilers festlegen

Aber wir finden dort noch weitere interessante Eigenschaften. Die Eigenschaft Größe des geteilten Formulars etwa erwartet einen in Zentimetern angegebenen Wert, der mitteilt, welche Höhe der Detailbereich des Formulars einnehmen soll.

Unter VBA verwenden Sie die Eigenschaft SplitFormSize des Formulars. Hier erhalten Sie allerdings einen Wert in der Einheit Twips. Wenn Sie die aktuelle Höhe des Formulars in Twips ermitteln möchten, setzen Sie etwa die folgende Abfrage im Direktbereich von Access ab – das Formular sollte dazu als geteiltes Formular geöffnet sein:

  Forms!frmArtikelGeteilt.SplitFormSize
  4995 

Diesen Wert können Sie auch per VBA einstellen. Interessant wird noch, ob sich der Teiler immer auf die Höhe des Detailbereichs bezieht oder immer auf den jeweils oberen Bereich – dies werden wir im nächsten Abschnitt ermitteln.

Teilerposition

Die Eigenschaft Position der Teilerleiste speichern legt fest, ob die vom Benutzer geänderte vertikale oder horizontale Position der Teilerleiste gespeichert und beim nächsten öffnen des Formulars wiederherstellt werden soll.

Unter VBA nutzen Sie die Eigenschaft SplitFormSplitterBarSave, die Sie mit einem Boolean-Wert füttern, um dies einzustellen.

Formular ausrichten

Mit der Eigenschaft Ausrichtung des geteilten Formulars stellen Sie ein, ob das Detailformular oder das Datenblatt oben angezeigt wird – oder links oder rechts! Die Eigenschaft nimmt nämlich die folgenden Werte an:

  • Datenblatt oben
  • Datenblatt unten
  • Datenblatt links
  • Datenblatt rechts

Wenn Sie die Einstellung Datenblatt links wählen, sieht das Formular etwa wie in Bild 5 aus.

Aufteilung mit dem Datenblatt auf der linken Seite

Bild 5: Aufteilung mit dem Datenblatt auf der linken Seite

Durch Experimente mit Kombinationen der beiden Werte Datenblatt oben und Datenblatt unten für diese Eigenschaft und verschiedener Werte für die Eigenschaft Größe des geteilten Formulars erfahren wir auch, dass letztere Eigenschaft die Höhe des Detailbereichs angibt – beziehungsweise bei nebeneinander ausgerichteten Bereichen die Breite des Detailbereiches.

Unter VBA verwenden Sie die Eigenschaft SplitFormOrientation, um die Ausrichtung einzustellen. Als Werte können Sie die vier VBA-Konstanten acDatasheetOnBottom, acDatasheetOnLeft, acDatasheetOnRight und acDatasheetOnTop verwenden (auch per IntelliSense verfügbar, s. Bild 6).

Einstellen der Ausrichtung des geteilten Formulars per VBA im Direktbereich

Bild 6: Einstellen der Ausrichtung des geteilten Formulars per VBA im Direktbereich

Teilerleiste ein- und ausblenden

Mit der Eigenschaft Teilerleiste des geteilten Formulars legen Sie fest, ob die Teilerleiste überhaupt angezeigt werden soll. Die Eigenschaft nimmt die beiden Werte Ja und Nein entgegen. Unter VBA entspricht SplitFormSplitterBar dieser Eigenschaft. Hier verwenden Sie entsprechend die Werte True und False beziehungsweise -1 und 0.

Datenblatteigenschaften

Die Eigenschaft Datenblatt des geteilten Formulars erwartet einen der Werte Bearbeitungen zulassen oder Schreibgeschützt. Damit legen Sie fest, ob der Benutzer die Daten auch im Datenblattbereich bearbeiten kann oder nicht.

Die VBA-Variante dieser Eigenschaft heißt SplitFormDatasheet. Sie enthält eine der beiden VBA-Konstanten acDatasheetAllowEdits oder acDatasheet-ReadOnly.

Was drucken

Die Eigenschaft Drucken des geteilten Formulars bietet die beiden Werte Nur Datenblatt und Nur Formular an. Damit stellen Sie ein, welcher Teil des Formulars beim Ausdrucken auf dem Papier landen soll. Die VBA-Variante heißt SplitFormPrinting und erwartet eine der beiden Konstanten acFormOnly oder acGridOnly.

Geteiltes Formular als Unterformular

Wenn Sie ein geteiltes Formular als Unterformular eines anderen Formulars verwenden möchten, werden Sie enttäuscht werden: Dies funktioniert schlicht nicht. Das Formular erscheint dann in der Formularansicht.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar