Hallo!
Ich möchte 2 Datenbanken verknüpfen: 1. Kunden und die 2. Datenbank wann Buch ausgeliehen und zurückgegeben wurde. Für ein kleines Beispiel wäre ich dankbar
Du hast die Frage mit “calc” getaggt. Calc ist eine Tabellenkalkulation, also keine Datenbank. Falls Du Calc als Datenbank missbrauchst, solltest Du wenigstens beide Datenbstände in einem Dokument zusammenführen. Es macht nur zusätzliche Scherereien, Eingang und Ausgang für dieselben Gegenstände getrennt zu führen.
Danke, aber ich meinte BASE, habe ,ich im Tag vertippt
Grundsätzlich: Man verknüpft normalerweise nicht zwei Datenbanken, sondern verschiedene Tabellen in derselben Datenbank.
Du kennst das Handbuch zu Base?
Weitere Beispiele auf der Seite des Autors der deutschen Version:
Die Lösung wäre gleich. Alles in eine Datenbank. Für zwei getrennte Datenbanken kenne ich nur die Verknüpfung über Master- und Slave-Formular in einem nicht eingebetteten Formulardokument.
Erstelle ein Writer-Dokument, schalte das “Weblayout” ein, füge ein Formular hinzu, z.B. “Ausleihe” und ergänze es mit einem Unterformular, das die andere Datenquelle referenziert. In einem alleinstehenden Formulardokument kann man die Datenquellen frei wählen. Eingebettete Formulare beziehen sich immer auf das umgebende Datenbankdokument, und jedes Datenbankdokument kann immer nur mit einer Datenbank verbunden sein.
Hallo, ich hatte mich vertan und meinte 2 Tabellen
Gesendet mit der Telekom Mail App
-----Original-Nachricht-----
Von: Andreas Säger via Ask LibreOffice <noreply@ask.libreoffice.org>
Betreff: [Ask LibreOffice] [Deutsch] Base Datenbanken verknüpfen
Datum: 13.05.2023, 18:16 Uhr
An: <gekowu@t-online.de>
Villeroy
May 13
Die Lösung wäre gleich. Alles in eine Datenbank. Für zwei getrennte Datenbanken kenne ich nur die Verknüpfung über Master- und Slave-Formular in einem nicht eingebetteten Formulardokument.
Erstelle ein Writer-Dokument, schalte das “Weblayout” ein, füge ein Formular hinzu, z.B. “Ausleihe” und ergänze es mit einem Unterformular, das die andere Datenquelle referenziert. In einem alleinstehenden Formulardokument kann man die Datenquellen frei wählen. Eingebettete Formulare beziehen sich immer auf das umgebende Datenbankdokument, und jedes Datenbankdokument kann immer nur mit einer Datenbank verbunden sein.
Visit Topic or reply to this email to respond.
To unsubscribe from these emails, click here.
Dann haben wir wenigstens schon mal geklärt, von welcher Office-Komponente wir sprechen und dass Du schon mindestens zwei Tabellen angelegt hast, aber nicht was die konkrete Frage sein soll. Zusätzlich wäre es ganz hilfreich zu wissen, über welche konkrete Datenbank-Software wir reden (s. Statuszeile des Datenbankfensters).
So allgemein ins Blaue geschwafelt:
Zu einer Ausleihe gehören neben dem Leihdatum ein individueller Kunde und ein individuelles Buch, also eine m:n Beziehung. Zu jeder einzelnen Ausleihe gehört genau eine Rückgabe, also eine 1:1-Beziehung. Der Rest dürfte sich daraus ergeben.
Ich hab da mal was vorbereitet weil ganz ähnliche Fragestellungen diese Woche schon mal dran waren.
Die Datenbank hat Personen (nur Name und Auto-ID), Bücher (nur Name und Auto-ID), eine Tabelle mit Ausleihen (Personen-ID, Buch-ID, autom. Zeitstempel und Auto-ID), eine Tabelle mit Rückgaben (Leih-ID, autom. Zeitstempel) und eine Filter-Tabelle, welche nur die Filterkriterien für die zwei Formulare in zwei Zeilen speichert.
Wenn ein Kunde am Tresen steht, gibt man ihn in das Ausleih-Formular ein und drückt [OK] oder die Eingabetaste. Darauf erscheinen alle seine Ausleihen und Rückgaben. In dem grünen Listenfeld erscheinen die verfügbaren Bücher (nie ausgeliehen oder zurückgegeben). Von denen kann man jetzt eines auswählen und [OK] drücken oder die Eingabetaste.
Oder man kann zurückgegebene Bücher anklicken und dann auf den Rückgabe-Knopf drücken.
Ein zweites Suchformular erlaubt es, alle Ausleihen nach Buchname, Personenname, Ausleihdatum oder Rückgabestatus zu filtern.
Das Dokument enthält 2 kleine Makros, die dafür sorgen, dass eine Rückgabe mit einem einfachen Klick funtioniert und dass die Listen der verfügbaren, ausgeliehenen und zurückgegebenen Bücher im selben Formular automatisch aktualisisert werden.
lending_library.odb (32.6 KB)
Edit: Diese Demo-Datenbank ist eine HSQLDB, eingebettet im Datenbankdokument.
Hallo Villeroy, herzlichen dank dafür. Ich werde versuchen das zu verstehen.
Das hier ist nur eine kleine Demonstration eines Teilaspektes. Für etwas, das in einer kleinen Leihbücherei wirklich nutzbar ist braucht man viele Tage an Zeit für Entwicklung und Testen. Dafür hat man dann aber etwas, was über viele Jahre unkompliziert nutzbar ist.
Das reicht mir als Demo, danke. Ich wusste nicht, wie ich so etwas machen konnte .
In unserem Aufenthaltsraum stehen Bücher und man will doch wissen, wo die geblieben sind
Lösche meine Daten aus den Tabellen in der Reihenfolge RET, LEND und dann die Personen und Bücher.
Tools>SQL…
DELETE FROM RET;
DELETE FROM LEND;
DELETE FROM P;
DELETE FROM B;
Dann trage erst die Bücher und Personen in die Tabellen ein, bevor Du etwas an jemanden verleihen kannst.
OK, vielleicht dies noch:
Öffne unter Extras das “Beziehungsfenster” (keine Angst, rein technischer Natur). Du siehst die Beziehungen zwischen den Tabellen dargestellt als 3 Linien wie im obigen Screenshot.
Ein Doppeklick auf eine Linie öffnet einen Dialog. Dort setzt Du “Kaskadierendes Löschen”. Setze die Option für alle 3 Linien.
Relationen speichern, Datenbank speichern.
Der Unterschied besteht darin, dass Du jetzt ausgeschiedene Personen und nicht mehr existierende Bücher direkt löschen kannst, und alle Ausleihen der Personen/Bücher werden mit gelöscht sowie auch die zugehörigen Rückgaben.
Ohne diese Option musst Du nicht mehr benötigte Daten in der oben geschilderten Reihenfolge löschen. Bei geschäftlichen Anwendungen will man kaskadierende Löschung von Informationen möglichst nicht riskieren. Hier wäre das wahrscheinlich eine zulässige Vereinfachung.
Und mach bitte jeden Tag ein Backup des Datenbankdokuments.
Sclhleße das Dokument und warte ein paar Sekunden bevor Du den Computer schlafen legst. Eingebettete Datenbanken können leicht verloren gehen.
Es ist relativ einfach, die Datenbank aus dem Dokument herauszulösen, was einige Vorteile und mehr Stabilität bietet.