Inhalte
Index 🔎︎

# Daten

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

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

So greifen Sie auf diesen Befehl zu:

Öffnen Sie das Kontextmenü eines ausgewählten Formular-Elements und wählen Sie Formular... - Register: Daten.

Öffnen Sie eine der Symbolleisten Formular-Steuerelemente oder Formular-Entwurf, klicken Sie auf das Symbol Formulareigenschaften und wählen Sie das Register Daten.

## Art der Datenquelle

Hier bestimmen Sie, 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 angeben. 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 generiert.

## Daten hinzufügen

Determines if data can be added.

## Daten ändern

Determines if the data can be modified.

## Datenbank

Defines the data source to which the form should refer. If you click the ... button, you call the Open dialog, where you can choose a data source.

## Datenquelle

Determines the content to be used for the form. The content can be an existing table or a query (previously created in the database), or it can be defined by an SQL-statement. Before you enter a content you have to define the exact type in Content type.

Wenn Sie als Art des Inhaltes entweder "Tabelle" oder "Abfrage" auswählen, werden hier 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

Enter the required conditions for filtering the data in the form. The filter specifications follow SQL rules without using the WHERE clause. For example, if you want to display all records with the "Mike" forename, type into the data field: Forename = 'Mike'. You can also combine conditions: Forename = 'Mike' OR Forename = 'Peter'. All records matching either of these two conditions will be displayed.

Im Benutzermodus kann über die Symbole AutoFilter und Standardfilter in der Formular-Navigationsleiste auf die Filterfunktion zugegriffen werden.

## Löschungen zulassen

Determines if the data can be deleted.

## Navigationsleiste

Specifies whether the navigation functions in the lower form bar can be used.

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

Determines if the form only allows the addition of new data (Yes) or if it allows other properties as well (No).

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

## SQL Befehl analysieren

Specifies whether the SQL statement is to be analyzed by LibreOffice. If set to Yes, you can click the ... button next to the Content list box. This will open a window where you can graphically create a database query. When you close that window, the SQL statement for the created query will be inserted in the Content list box.

## Sortierung

Specifies the conditions to sort the data in the form. The specification of the sorting conditions follows SQL rules without the use of the ORDER BY clause. For example, if you want all records of a database to be sorted in one field in an ascending order and in another field in a descending order, enter Forename ASC, Name DESC (presuming Forename and Name are the names of the data fields).

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

## Verknüpfen nach

If you create a subform, enter the variable where possible values from the parent form field can be stored. If a subform is based on a query, enter the variable that you defined in the query. If you create a form using an SQL statement entered in the Data source field, enter the variable you used in the statement. You can choose any variable name. If you want to enter multiple values, press Shift + Enter.

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 angeben, werden die entsprechenden Werte im Unterformular angezeigt.

## Verknüpfen von

If you create a subform, enter the data field of the parent form responsible for the synchronization between parent and subform. To enter multiple values, press Shift + Enter after each input line.

Das Unterformular basiert auf einer SQL-Abfrage, genauer gesagt auf einer Parameterabfrage. Wenn Sie einen Feldnamen in das Feld Verknüpfen von eingeben, werden die Daten in diesem Feld aus dem Hauptformular in eine Variable gelesen, die Sie im Feld Verknüpfen nach angeben müssen. Mittels einer geeigneten SQL-Anweisung wird diese Variable mit den Daten der Tabelle verglichen, auf die sich das Unterformular bezieht. Stattdessen können Sie auch den Spaltennamen in das Feld Verknüpfen von 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

Determines how the navigation should be done using the tab key. Using the tab key, you can move forward in the form. If you simultaneously press the Shift key, the navigation will follow the opposite direction. If you reach the last (or the first) field and press the tab key again, it can have various effects. Define the key control with the following options:

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 Tabulatortaste 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 dient zum Navigieren durch alle Datensätze. Wenn Sie im letzten Feld des Formulars die Tabulatortaste betätigen, wird der aktuelle Datensatz geändert.
Aktueller Datensatz | Diese Option gilt nur für Datenbankformulare und dient zum Navigieren innerhalb des aktuellen Datensatzes. Wenn Sie im letzten Feld des Formulars die Tabulatortaste 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 Standardverhalten 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 Formular-Navigator. Ziehen Sie im Formular-Navigator 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.

Geben Sie das Feld "Verknüpfen von" von den Datenfeldern im Hauptformular an. 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.