Inhalte

# Daten

Im Register Daten sind die Formulareigenschaften definiert, die sich auf die mit dem Formular verknüpfte Datenbank beziehen.

Legt die als Grundlage für das Formular dienende Datenquelle fest oder entscheiden, ob die Daten vom Benutzer geändert werden dürfen. Neben den Sortier- und Filterfunktionen stehen auch sämtliche zum Erstellen von Unterformularen erforderlichen Eigenschaften zur Verfügung.

Auf diesen Befehl zugreifen …

Öffnen Sie das Kontextmenü eines ausgewählten Formularelements und wählen Sie Formulareigenschaften… – Register: Daten.

Öffnen Sie die Symbolleiste Formularentwurf, klicken Sie auf das Symbol Formulareigenschaften und wählen Sie das Register Daten.

## Art der Datenquelle

Legt fest, ob eine vorhandene Datenbanktabelle oder -abfrage als Datenquelle verwendet werden oder das Formular auf einem SQL-Ausdruck aufbauen soll.

Wenn Sie "Tabelle" oder "Abfrage" wählen, dann bezieht sich das Formular auf die bestehende Tabelle oder Abfrage, die Sie unter Datenquelle festlegen. Um eine neue Abfrage zu erstellen oder ein Unterformular anzulegen, müssen Sie die Option "SQL" wählen. Sie können dann das Statement für die SQL-Abfrage oder das Unterformular direkt in das Feld Datenquelle eingeben. Das Formular wird dann auf Grundlage des angegebenen Statements erzeugt.

## Daten hinzufügen

Bestimmt, ob Daten hinzugefügt werden können.

## Daten ändern

Bestimmt, ob die Daten geändert werden können.

## Datenbank

Legt die Datenquelle fest, auf die sich das Formular bezieht. Wenn Sie auf die Schaltfläche … klicken, wird der Dialog Öffnen angezeigt, in dem Sie eine Datenquelle wählen können.

## Datenquelle

Bestimmt den Inhalt für das Formular. Dabei kann es sich um eine bereits in der Datenbank angelegte Tabelle beziehungsweise Abfrage handeln oder Sie können den Inhalt durch einen SQL-Ausdruck definieren. Bevor Sie Inhalt eingeben, müssen Sie mit Art des Inhaltes den genauen Typ festlegen.

Wenn Sie als Art des Inhaltes entweder "Tabelle" oder "Abfrage" auswählen, werden alle Datenquellen der entsprechenden Art aufgeführt, das heißt sämtliche in der Datenbank eingerichteten Tabellen und Abfragen. Soll sich das Formular auf eine Abfrage beziehen, so müssen Sie zunächst die Option "Abfrage" als Art des Datenquelleninhalts auswählen.

## Filter

Geben Sie die zum Filtern der Daten im Formular erforderlichen Kriterien an. Die Definition des Filters erfolgt nach SQL-Regeln ohne Verwendung der WHERE-Klausel. Sollen beispielsweise alle Datensätze mit dem Vornamen "Michael" angezeigt werden, geben Sie Folgendes in das Datenfeld ein: Vorname = 'Michael'. Auch Kombinationen mehrerer Kriterien sind möglich: Vorname = 'Michael' OR Vorname = 'Peter'. Es werden dann alle Datensätze angezeigt, die eine der beiden Kriterien erfüllen.

Die Filterfunktion ist im Benutzermodus über die Symbole AutoFilter und Standardfilter in der Symbolleiste Formularnavigation verfügbar.

## Löschungen zulassen

Bestimmt, ob die Daten gelöscht werden können.

## Navigationsleiste

Legt fest, ob die Navigationsfunktionen in der unteren Formularleiste verwendet werden können.

Die Option "Übergeordnetes Formular" wird für Unterformulare verwendet. Wenn Sie diese Option für ein Unterformular wählen, können Sie über die Datensätze des Hauptformulars navigieren, wenn sich der Cursor im Unterformular befindet. Da ein Unterformular durch eine 1:1-Beziehung mit dem Hauptformular verknüpft ist, wird die Navigation immer auf dem übergeordneten Formular ausgeführt.

## Nur Daten hinzufügen

Legt fest, ob das Formular lediglich das Hinzufügen neuer Daten erlauben soll (Ja) oder ob es nicht nur auf diese Eigenschaft beschränkt ist (Nein).

Wenn Nur Daten hinzufügen auf "Ja" gesetzt ist, können die Daten weder geändert noch gelöscht werden.

## SQL Befehl analysieren

Legt fest, ob die SQL-Anweisung von LibreOffice analysiert werden soll. Wenn die Einstellung auf "Ja" gesetzt ist, können Sie auf die Schaltfläche … neben dem Listenfeld Inhalt klicken. Es wird ein Fenster aufgerufen, in dem Sie grafisch eine Datenbankabfrage erstellen können. Wenn Sie das Fenster schließen, wird die SQL-Anweisung für die erstellte Abfrage in das Listenfeld Inhalt eingefügt.

## Sortierung

Legt die Kriterien zum Sortieren der Daten im Formular fest. Die Angabe der Sortierkriterien erfolgt nach SQL-Regeln ohne Verwendung der ORDER BY-Klausel. Sollen beispielsweise alle Datensätze einer Datenbank in einem Feld aufsteigend und in einem anderen Feld absteigend sortiert werden, geben Sie "Vorname ASC", Name DESC" ein (wenn "Vorname" und "Name" die Datenfeldnamen sind).

Im Benutzermodus können Sie die entsprechenden Symbole in der Symbolleiste Formular-Navigation zum Sortieren verwenden: Aufsteigend sortieren, Absteigend sortieren, Sortieren.

## Verknüpfen nach

Falls Sie ein Unterformular erstellen, geben Sie die Variable ein, in der mögliche Werte aus dem Feld des übergeordneten Formulars gespeichert werden können. Bei einem Unterformular, das auf einer Abfrage basiert, geben Sie die in der Abfrage definierte Variable ein. Wenn Sie das Formular mithilfe eines im Feld Datenquelle definierten SQL-Ausdrucks erstellen, geben Sie die Variable aus diesem Ausdruck ein. Sie können einen beliebigen Variablennamen wählen. Um mehrere Werte einzugeben, drücken Sie [Umschalt+Eingabetaste].

Haben Sie unter Verknüpfen von als übergeordnetes Feld beispielsweise das Datenbankfeld "KundenID" angegeben, dann legen Sie unter Verknüpfen nach den Namen der Variablen fest, in der die Werte des Datenbankfeldes "KundenID" gelesen werden sollen. Wenn Sie nun mit Hilfe dieser Variablen ein SQL-Statement im Feld Datenquelle festlegen, werden die entsprechenden Werte im Unterformular angezeigt.

## Verknüpfen von

Beim Erstellen eines Unterformulars geben Sie das Datenfeld des übergeordneten Formulars ein, das für die Synchronisierung der beiden Formulare verantwortlich ist. Um mehrere Werte einzugeben, drücken Sie nach jeder Eingabezeile [Umschalt+Eingabetaste].

Das Unterformular basiert auf einer SQL-Abfrage; genauer gesagt auf einer Parameter-Abfrage. Wenn ein Feldname in das Feld Hauptfelder verknüpfen eingegeben wird, werden die in diesem Feld enthaltenen Daten im Hauptformular in eine Variable gelesen, die Sie in Abhängige Felder verknüpfen eingeben müssen. In einer entsprechenden SQL-Anweisung wird diese Variable mit den Tabellendaten verglichen, auf die sich das Unterformular bezieht. Alternativ können Sie den Spaltennamen in das Feld Hauptfelder verknüpfen eingeben.

Betrachten Sie dazu folgendes Beispiel:

Die dem Formular zugrunde liegende Datenbanktabelle sei beispielsweise eine Kunden-Datenbank ("Kunden"), in der Sie jeden Kunden durch eine eindeutige Nummer kennzeichnen, und zwar mit einem Datenfeld namens "Kunden_ID". Die Bestellungen eines Kunden verwalten Sie in einer anderen Datenbanktabelle. Um nun zu jedem Kunden, den Sie in dem Formular eingeben, auch seine Bestellungen zu sehen, legen Sie sich das Unterformular an und geben unter Verknüpfen von das Datenfeld aus der Kunden-Datenbank ein, an dem der Kunde eindeutig identifiziert werden kann, also "Kunden_ID" (ohne Anführungszeichen). Unter Verknüpfen nach tragen Sie den Namen einer Variablen ein, welche die Daten des Feldes Kunden_ID aufnehmen soll, beispielsweise "x".

Das Unterformular soll für jede Kundennummer die entsprechen Daten aus der Bestellungstabelle ("Bestellungen") anzeigen (Kunden_ID -> x). Dies ist nur möglich, wenn in der Bestellungstabelle jede Bestellung eindeutig einem Kunden zugeordnet ist. Auch das kann über ein Feld namens "Kunden_ID" erfolgen. Um aber eine Verwechslung mit demselben Feld im Hauptformular zu vermeiden, bietet es sich an, das Feld "Kunden_Nr." zu nennen.

Vergleichen Sie nun die Kunden_Nr. in der Tabelle "Bestellungen" mit der Kunden_ID in der Tabelle "Kunden", beispielsweise anhand der Variablen x und des folgenden SQL-Ausdrucks:

SELECT * FROM Bestellungen WHERE Kunden_Nr =: x (wenn das Unterformular alle Daten aus der Bestell-Tabelle anzeigen soll)

oder:

SELECT Artikel FROM Bestellungen WHERE Kunden_Nr =: x (wenn das Unterformular aus der Bestell-Tabelle nur die Daten des Feldes "Artikel"anzeigen soll)

Das SQL-Statement können Sie entweder im Feld Datenquelle eingeben, oder Sie legen sich eine entsprechende Parameterabfrage an, mit der Sie das Unterformular erstellen.

## Zyklus

Legt fest, wie sich die Navigation mittels [Tabulator] verhalten soll. Mithilfe von [Tabulator] können Sie sich im Formular vorwärts bewegen. Wenn Sie gleichzeitig [Umschalt] drücken, verläuft die Navigation in umgekehrter Richtung. Die Betätigung von [Tabulator] im letzten (oder ersten) Feld kann sich unterschiedlich auswirken. Bestimmen Sie das Verhalten der Taste anhand dieser Optionen:

Option | Bedeutung
--- | ---
Standard | Mit dieser Einstellung wird automatisch ein Zyklus definiert, der sich an einer bestehenden Datenbankverbindung orientiert: Existiert im Formular eine Datenbankverbindung, so wird beim Verlassen des letzten Feldes mittels [Tabulator] standardmäßig zum nächsten/vorigen Datensatz gewechselt (siehe Alle Datensätze). Ohne Datenbankverbindung wird zum nächsten/vorigen Formular gewechselt (siehe Aktuelle Seite).
Alle Datensätze | Diese Option gilt nur für Datenbankformulare und wird zum Navigieren durch alle Datensätze verwendet. Wenn Sie im letzten Feld des Formulars [Tabulator] betätigen, wird der aktuelle Datensatz geändert.
Aktueller Datensatz | Diese Option gilt nur für Datenbankformulare und wird zum Navigieren innerhalb des aktuellen Datensatzes verwendet. Wenn Sie im letzten Feld des Formulars [Tabulator] betätigen, wird der aktuelle Datensatz geändert.
Aktuelle Seite | Beim Verlassen des letzten Felds in einem Formular springt der Cursor auf das erste Feld im nächsten Formular. Dies ist das standardmäßige Verhalten von HTML-Formularen; deshalb ist diese Option besonders für HTML-Formulare relevant.

## Was ist ein Unterformular?

Formulare werden auf Grundlage einer Datenbanktabelle oder einer Datenbankabfrage erstellt. Sie stellen die Daten optisch aufbereitet dar und können zur Eingabe neuer oder zur Änderung bereits bestehender Daten dienen, welche in der dem Formular zugrunde liegenden Datenbanktabelle oder -abfrage gespeichert sind.

Erfordert Ihre Aufgabenstellung ein Formular, das sich auf die Daten in einer Tabelle oder Abfrage beziehen und zusätzlich Daten aus einer anderen Tabelle anzeigen kann, so bietet sich die Erstellung eines Unterformulars an. Ein solches Unterformular kann beispielsweise ein Textfeld sein, das die Daten einer anderen Datenbanktabelle enthält.

Ein Unterformular ist eine Zusatzkomponente zu Ihrem Hauptformular. Das "Hauptformular" bezeichnet man als "übergeordnetes Formular" oder "Master". Unterformulare werden also benötigt, Um in einem Formular auf mehr als eine Tabelle zuzugreifen. Für jede weitere Tabelle benötigen Sie je ein Unterformular.

Nach dem Erstellen eines Formulars kann es in ein Unterformular umgewandelt werden. Gehen Sie dazu in den Entwurfsmodus und öffnen Sie den Formularnavigator. Ziehen Sie im Formularnavigator das in ein Unterformular umzuwandelnde Formular mit der Maus auf das Formular, das für das Unterformular das Hauptformular werden soll.

Ein Unterformular ist als solches nicht vom Benutzer eines Dokuments zu erkennen. Dieser sieht lediglich ein Dokument, in das er seine Daten eingeben kann oder in dem ihm vorhandene Daten angezeigt werden.

Legen Sie das Feld "Verknüpfen von" der Datenfelder im Hauptformular fest. Im Unterformular kann das Feld "Verknüpfen nach" als Feld festgelegt werden, das dem Inhalt des Felds "Verknüpfen von" angepasst wird.

Wenn der Benutzer durch das Formular navigiert, zeigt das Formular immer den aktuellen Datensatz an. Wenn Unterformulare definiert sind, wird der Inhalt der Unterformulare nach einer kurzen Verzögerung von ca. 200 ms angezeigt. Diese Verzögerung ermöglicht das schnelle Durchsuchen der Datensätze im Hauptformular. Wenn Sie innerhalb des Verzögerungsgrenzwerts zum nächsten Hauptdatensatz navigieren, müssen die Unterformulardaten also gar nicht abgerufen und angezeigt werden.