2160481

So nutzen Sie Datenbanken mit Libre Office Base

12.01.2016 | 14:30 Uhr |

Das Datenbankmodul in Libre Office können Sie für einfache Adressbücher verwenden. Es eignet sich aber auch für komplexe Aufgaben etwa zur Verwaltung von Kunden und Rechnungen.

Adressbücher, Haushaltsbücher, Kundenverwaltung, Rechnungen: Libre Office Base bietet Funktionen, über die sich die Dateneingabe mit Formularen komfortabel gestalten lässt. Außerdem gibt es Abfragen und Berichte, mit denen Sie Datenbankinhalte nach bestimmten Kriterien filtern und formatiert darstellen können. Wir beschreiben hier die wichtigsten Funktionen und bieten für den praktischen Einstieg eine Beispieldatenbank zum herunterladen an.

1. Installation – Versionen – Versionsunterschiede von Libre Office

Dieser Artikel arbeitet mit Libre Office 5.0 unter Ubuntu 15.04. Unterschiede in Libre Office Base zwischen Version 5.0 und dem Vorgänger 4.4.2 konnten wir allerdings nicht entdecken, so dass alle Aussagen auch für diese ältere Version gelten. Wenn Sie bei der vorinstallierten Version bleiben möchten, installieren Sie zusätzlich die Pakete „libreoffice-base“ und „libreoffice-report-builder“. Dabei wird auch das Java Runtime Environment (JRE) installiert, das für Libre Office Base erforderlich ist. Gehen Sie dann etwa im Writer auf „Extras -> Optionen -> LibreOffice -> Erweitert“. Aktivieren Sie die angezeigte Java-Laufzeitumgebung, und bestätigen Sie dies mit „OK“. Danach starten Sie Libre Office neu.

Auch interessant: 13 clevere Tipps & Tricks für Libre Office in Linux

2. Datenbanken und Datenbanksysteme

Eine Datenbank ist ein Speicher für Inhalte, die in der Regel in Tabellenform abgelegt sind. Das Format unterscheidet sich nicht prinzipiell von dem einer Tabellenkalkulation. Bei beiden sind Datensätze in Spalten und Zeilen organisiert. Eine Spalte definiert eine bestimme Eigenschaft wie „Name“ oder „Wohnort“.

Die Zeilen enthalten die Datensätze, etwa für jede Person in einem Adressbuch. Datenbanken sind komplizierter als Calc-Tabellen, bieten aber mehr Flexibilität und Funktionen. Ihre Stärke liegt vor allem darin, mehrere Tabellen miteinander zu verbinden („relationale Datenbank“). So können zu jedem Kunden in einem Adressbuch mehrere Rechnungen oder Bestellungen gehören. Über Abfragen lässt sich herausfinden, welche Rechnungen zu welchem Kunden gehören oder umgekehrt. In den verknüpften Tabellen kommen die gleichen Daten im optimalen Fall jeweils nur einmal vor. Zu einer Datenbank gehört in der Regel eine Benutzeroberfläche, über die sich Datenbanken erstellen, Eingaben vornehmen und Datenbankabfragen darstellen lassen.

In Libre Office Base hilft ein Tabellen Assistent, die Felder für die Datensätze anzulegen.
Vergrößern In Libre Office Base hilft ein Tabellen Assistent, die Felder für die Datensätze anzulegen.

Zusammen mit dem eigentlichen Datenspeicher bildet die Software ein Datenbank-Management-System (DBMS). Libre Office Base bietet einen Zugriff auf verschiedene Datenbanksysteme. Base arbeitet standardmäßig mit dem eingebetteten Java-Datenbanksystem HSQLDB , kann aber auch externe Datenbanken wie My SQL oder Postgre SQL einbinden.

3. Datenbanken und Tabellen erstellen mit Libre Office Base

Eine neue Datenbank erstellen Sie von jedem Programmmodul aus über „Datei -> Neu -> Datenbank“. Im Assistenten übernehmen Sie die Vorgaben und klicken auf „Weiter“ und „Fertigstellen“. Wahlen Sie dann den Speicherort, und geben Sie eine Bezeichnung für die Datenbankdatei ein. Danach öffnet sich die Oberfläche von Libre Office Base.

Klicken Sie unter „Datenbank“ auf „Tabellen“ und dann unter „Aufgaben“ auf „Tabelle unter Verwendung des Assistenten erstellen...“. Für eine Adressdatenbank aktivieren Sie die Option „Geschäftlich“ und unter „Beispieltabellen“ den Eintrag „Kontakte“. Wählen Sie die Felder „Titel“, „Nachname“, „Vorname“, „Postleitzahl“, „Ort“ und „Adresse“ aus. Klicken Sie jeweils auf die „>“-Schaltfläche und danach auf „Weiter“. Bei Bedarf können Sie die vorgegebenen Feldformate ändern. Scheint etwa die Länge „50“ für den Nachnamen zu kurz, geben Sie einen größeren Wert ein. Klicken Sie auf „Weiter“. Lassen Sie „Primärschlüssel“ und „Primärschlüssel wird automatisch hinzugefügt“ aktiv, und setzen Sie zusätzlich ein Häkchen vor „Autowert“. Nach „Weiter“ geben Sie die Bezeichnung „Kunden“ für die Tabelle ein und klicken auf „Fertigstellen“. Es öffnet sich die Tabelle in der Bearbeitungsansicht, und Sie können einige Testdaten eingeben. Ein Datensatz wird gespeichert, sobald Sie in die nächste Zeile klicken. Die erste Spalte mit der Bezeichnung „ID“ (Primärschlüssel) füllt Libre Office automatisch aus. Sie wird fortlaufend nummeriert, und es kann hier keine zwei identischen Werte geben. Ein eindeutiger Primärschlüssel ist in jeder Tabelle zwingend erforderlich.

Mehr Komfort beim Eingeben der Daten über eine Eingabemaske die die Felder anzeigt.
Vergrößern Mehr Komfort beim Eingeben der Daten über eine Eingabemaske die die Felder anzeigt.

4. Formulare und Abfragen verwenden

Werte in Tabellen einzutippen ist mühsam, vor allem bei langen Zeilen. Dafür gibt es Formulare: Klicken Sie unter „Datenbank“ auf „Formulare“ und dann auf „Formular unter Verwendung des Assistenten erstellen...“. Der Dialog zeigt die eben erstellte Tabelle „Kunden“ und die enthaltenen Felder. Übernehmen Sie per Klick auf „>>“ alle Felder. Klicken Sie zweimal auf „Weiter“. Wählen Sie per Klick auf eine Schaltfläche die gewünschte Anordnung aus, beispielsweise „In Spalten -> Beschriftungen oben“. Klicken Sie zweimal auf „Weiter“.

Wählen Sie dann einen Stil aus, über den Sie die Farbe und Feldumrandungen bestimmen. Nach dem nächsten „Weiter“ vergeben Sie die Bezeichnung „Kunden_verwalten“ und klicken auf „Fertigstellen“.

Das Formular zeigt den zuerst eingegebenen Datensatz. Über die Schaltflächen im Formular-Navigator am unteren Fensterrand wechseln Sie zum nächsten oder vorherigen Datensatz. Wenn Sie über den letzten Datensatz hinausgehen, erhalten Sie ein leeres Formular für einen neuen Datensatz.

Datensätze filtern: Häufig ist es erforderlich, Datenbankinhalte gemäß bestimmter Kriterien aufzulisten. Dazu gehen Sie auf „Abfragen“ und „Abfrage unter Verwendung des Assistenten erstellen...“. Wie beim Formular wählen Sie zuerst die Felder aus, die die Abfrage berücksichtigen soll. Mit „>>“ übernehmen Sie alle Felder und klicken auf „Weiter“. Wählen Sie eine Sortierreihenfolge, beispielsweise „Kunden.Nachname“. Nach einem Klick auf „Weiter“ wählen Sie unter „Felder“ etwa „Kunden.Ort“ und bei „Bedingung“ den Eintrag „ist gleich“. Tippen Sie unter „Wert“ einen Ortsnamen ein, der in der Tabelle „Kunden“ vorkommt. Klicken Sie auf „Fertigstellen“. Es erscheint eine Tabelle, die nur Zeilen zeigt, die dem gewählten Kriterium entsprechen.

Tutorials zu Libre Office Base und SQL

Umfangreiche Anleitungen und Tipps finden Sie im Handbuch zu Libre Office Base unter https://de.libreoffice.org/get-help/documentation . Die Beispieldatenbanken aus dem Handbuch gibt es hier ebenfalls. Für die Suche nach Informationen und konkrete Fragen sind Foren wie http://de.openoffice.info und www.libreoffice-forum.de nützlich. Wenn Sie sich mit der Abfragesprache SQL beschäftigen wollen, ist diese Adresse zu empfehlen: www.sql-und-xml.de/sql-tutorial .

5. Inhalte für den Ausdruck formatieren

Der letzte Bereich in Libre Office Base unter „Datenbank“ heißt „Berichte“. Der Bericht-Designer erzeugt aus Datensätzen Writer-Dokumente. Klicken Sie auf „Bericht unter Verwendung des Assistenten erstellen...“. Wählen Sie die Tabelle „Kunden“, und übernehmen Sie per „>>“ alle Felder. Folgen Sie dem Assistenten, und übernehmen Sie alle Vorgaben. Im Dialog „Wie soll Ihr Bericht aussehen?“ bestimmen Sie die Gestaltung des Dokuments – also etwa „In Blöcken, Beschriftungen oben“ sowie „Hochformat“. Nach „Fertigstellen“ erscheinen in einem Writer-Dokument alle Adressen, die Sie in die Tabelle „Kunden“ eingegeben haben.

Schließen Sie das Dokument, und wählen Sie im Kontextmenü des Berichts „Kunden“ den Eintrag „Bearbeiten“. Im Bericht-Designer gibt es die Bereiche „Seitenkopf“ und „Seitenfuß“. Sie können hier Infos unterbringen, die auf allen Seiten erscheinen sollen. Dazu verwenden Sie ein Beschriftungsfeld, das Sie nach Klick auf das zugehörige Symbol in der Leiste aktivieren und im Dokument mit der Maus aufziehen. Per Rechtsklick auf „Eigenschaften“ blenden Sie Optionen für das Element ein. Ändern Sie die Beschriftung, Schriftart und Schriftgröße. Im Bereich „Detail“ sehen Sie Platzhalter für die Felder aus der Datenbank. Alles was hier steht, wird so oft wiederholt, wie es Datensätze gibt. Sie können den Bereich etwas größer ziehen, um den Abstand zwischen den Textblöcken zu verändern. Wenn Sie die Feldbeschriftungen und das Feld „ID“ entfernen, lässt sich der Bericht beispielsweise für Adressetiketten verwenden. Speichern Sie den Bericht zum Abschluss. Per Doppelklick auf den Bericht „Kunden“ erstellen Sie das Berichtsdokument neu.

Als Basis für einen Bericht kann statt einer Tabelle auch eine Abfrage dienen (-> Punkt 4). Auf diese Weise erscheinen im Bericht nur Datensätze, die Sie mit der Abfrage gefiltert haben.

Bericht im Libre Office Entwurfsmodus bearbeiten.
Vergrößern Bericht im Libre Office Entwurfsmodus bearbeiten.

6. Beziehungen zwischen Tabellen

Das Beispiel „Rechnungen.odb“ zeigt, wie sich Tabellen miteinander verknüpfen lassen. Die Datei enthält Makros. Damit sich diese ausführen lassen, gehen Sie im Menü auf „Extras -> Optionen -> Sicherheit“ und klicken auf „Makrosicherheit.“ Wählen Sie die Option „Mittel“, und schließen Sie die Dialoge per Klicks auf „OK“.

Öffnen Sie „Rechnungen.odb“, und klicken Sie auf „Makros aktivieren“. Gehen Sie im Menü auf „Extras -> Beziehungen“. Sie sehen eine schematische Darstellung der Ihnen schon bekannten Tabelle „Kunden“ (-> Punkt 3) und drei weiterer Tabellen. „Rechnungen“ dient als Speicher für das Rechnungsdatum, Daten zur Zahlung sind im Feld „Bezahlt“ abgelegt. In „Verkauf“ sind die eindeutigen IDs von Rechnungen und Waren sowie die Anzahl der verkauften Produkte enthalten. „Produkte“ schließlich ist eine Tabelle mit allen Produkten und den zugehörigen Verkaufspreisen.

Beziehungen zwischen Tabellen erzeugen Sie, indem Sie über „Einfügen -> Tabellen hinzufügen“ Tabellen auswählen und dann ein Feld von einer Tabelle auf eine andere ziehen – etwa „ID“ in „Kunden“ auf „Kunden_ID“ in „Rechnungen“. Dabei entsteht eine 1:n-Verknüpfung: Zu einem Kunden („1“) gibt es mehrere Rechnungen („n“) und zu einer Rechnung mehrere Einzelposten, was sich in der Tabelle „Verkauf“ niederschlägt. Die Tabelle „Verkauf“ enthält die Relationen zwischen „Rechnungen“ und „Produkte“. Hier steht, welche Menge („Anzahl“) welches Produkts („Produkt_ID“) zu den unterschiedlichen Rechnungen gehört („Rechnung_ID“).

Relationale Datenbank: Über „Extras -> Beziehungen“ verknüpfen Sie die Felder der Tabellen.
Vergrößern Relationale Datenbank: Über „Extras -> Beziehungen“ verknüpfen Sie die Felder der Tabellen.

7. Formular für eine relationale Datenbank

Über das Formular „Rechnungen_verwalten“ können Sie die bisherigen Rechnungen betrachten und neue Rechnungen erstellen. Dazu verwenden Sie die Schaltflächen in der Navigations-Symbolleiste oben im Formular. Die einzelnen Rechnungsposten wählen Sie über das Listenfeld unter „Produkt“ aus und geben die Menge in die Spalte „Anzahl“ ein. Nach Klicks auf „Formular aktualisieren“ und „Summe aktualisieren“ erscheinen die zur Eingabe passenden Werte für „Gesamtpreis“ und „Rechnungs-Summe“.

Formular analysieren: Schließen Sie „Rechnungen_verwalten“, und öffnen Sie das Formular über den Kontextmenüpunkt „Bearbeiten“ im Entwurfsmodus. Klicken Sie in der Symbolleiste „Formular-Entwurf“ auf das Icon „Formular Navigator“. Klicken Sie mit der rechten Maustaste auf „MainForm“, dann auf „Eigenschaften“ und die Registerkarte „Daten“. Hinter „Inhalt“ sehen Sie, dass die Daten für dieses Formular aus der Tabelle „Rechnungen“ stammen.

Im „Formular Navigator“ gibt es eine Ebene tiefer das Formular „SubFormVerkauf“. Dessen Daten stammen aus der Tabelle „Verkauf“. Bei Unterformularen gibt es in den Eigenschaften auf der Registerkarte „Daten“ außerdem die Angabe „Verknüpfen von“ und „Verknüpfen nach“, in unserem Beispiel von „ID“ nach „Rechnung_ID“.

Dadurch verbindet Libre Office Base den ID-Wert der Tabelle „Rechnung“, also die Rechnungsnummer, mit dem Feld „Rechnung_ID“ in der Tabelle „Verkauf“. Das hat Auswirkungen auf das darunter liegende Element „Grid_Rechnung_Details“. Dieses zeigt deswegen die zur jeweils ausgewählten Rechnung gehörigen Posten an.

Ganz so einfach ist es allerdings nicht, denn nur die Spalte „Anzahl“ stammt tatsächlich aus der Tabelle „Verkauf“. Nach Klick auf die Spalte „Produkt“ sehen Sie in den Eigenschaften, dass der Inhalt aus „Abfrage_Produkte“ stammt. Zudem handelt es sich hier um ein Listenfeld, das sich manuell über das Kontextmenü „Ersetzen durch -> Listenfeld“ in das Tabellen-Steuerelement „Grid_Rechnung_Details“ einbauen lässt. Standardmäßig gibt es hier nur Elemente vom Typ „Formatiertes Feld“. Alles zusammen bietet die Möglichkeit, die Anzahl der Produkte über das Tabellen-Steuerelement einzugeben und ein Produkt für die Zeile auszuwählen.

Formular bearbeiten: Im Entwurfsmodus blenden Sie den „Formular Navigator“ ein.
Vergrößern Formular bearbeiten: Im Entwurfsmodus blenden Sie den „Formular Navigator“ ein.

Parameterabfragen: In Formularen gibt es keine Berechnungen – die müssen Sie mit einer Abfrage erledigen. Die Abfrage „Abfrage_Anzahl_Preis_formatiert“ liefert aus den Tabellen „Produkte“ und „Verkauf“ den Einzelpreis und den Gesamtpreis für jede Zeile der Rechnung. Klicken Sie im Kontextmenü dieser Abfrage auf „In SQL-Ansicht bearbeiten“. Sie sehen dann eine SQL-Abfrage der Datenbank, die mit der Formel „Anzahl * Artikelpreis“ den Gesamtpreis berechnet. Eine Besonderheit ist am Schluss der Zeile

"Verkauf"."Rechnung_ID" = :var

Der Ausdruck „:var“ ist eine Variable, die in „Rechnungen_verwalten“ das Unterformular „Form_Preis“ mit „Rechnung_ID“ füllt.

Die Abfrage liefert so nur Datensätze für eine bestimmte Rechnung. Damit passen „Einzelpreis“ und „Gesamtpreis“ zu jeweiligen Zeile der Rechnung.

8. Makros in Libre Office Base nutzen

Manche Probleme lassen sich nur über Programmcode lösen. Ein Beispiel dafür ist der Code hinter der Schaltfläche „Rechnung drucken“ im Formular „Rechnungen_verwalten“. Den Inhalt der Makros können Sie über „Extras -> Makros -> Makros verwalten -> LibreOffice Basic“ einsehen. Das Makro „Filtern_und_Drucken“ speichert die gerade angezeigte ID einer Rechnung in der Tabelle „Filter“ und ruft dann den Bericht „Rechnungen_drucken“ auf. Der Bericht erhält seine Daten aus der Tabelle „Bericht_Rechnung_Nummer“, die nur Datensätze einer einzelnen Rechnung enthält. Dahinter steckt eine SQL-Abfrage für die in „Filter“ gespeicherte Rechnungs-ID.

Ein zweites Makro rufen Sie über die Schaltfläche „Archivieren“ auf. Es speichert die Daten der angezeigten Rechnung in der Tabelle „Archiv_Bericht_Rechnung_Nummer“, die Sie für die Buchhaltung nutzen. Denn im Rechnungsformular ändern sich die Beträge automatisch, wenn Sie den Preis eines Produkts ändern.

Komplexe Formeln in LibreOffice erstellen - so geht's

Auch interessant: Download und Zusammenfassung der Funktionen von Libre Office

0 Kommentare zu diesem Artikel
2160481