🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
GELÖST: Formularerstellg. - Darstellg. von Beziehungen
GELÖST: Formularerstellg. - Darstellg. von Beziehungen
Hallo Formum,
Ich hoffe ich bin hier richtig. Wenn nicht, bitte ich um Nachsicht.
Ich möchte gerne eine Datenbank erstellen, bei der die Beziehung zu einer Person dargestellt werden soll. Da ich Schwierigkeiten habe bei der Erstellung des entsprechenden Formulars habe, schreibe ich einfach mal, was ich gemacht habe. Vermutlich habe ich irgendwo einen Denkfehler:
Ich habe zwei Tabellen (t_personen und t_beziehung), die ich miteinander verknüpfen möchte. Ich unterstelle, dass eine Person viele Beziehungen (Vater, Freund, Ehepartner, Sohn, etc.) haben kann und umgekehrt eine Beziehung (z.B. Freund) vielen Personen zugeordnet werden kann. Ich schließe daraus, dass es sich um eine m:n-Relation handelt. Ich benötige also eine Zwischentabelle (t_person_zu_beziehung). Ich habe also dann insgesamt drei Tabellen mit folgenden Feldern:
t_personen
- id
- vornamen
- famname
t_person_zu_beziehung
- person_id
- person2_id
- beziehung_id
t_beziehung
- id
- beziehung
Die Tabelle t_personen ist mit der Tabelle t_person_zu_beziehung zweifach verbunden, einmal durch die Felder „id und person_id“ (1 : n) und zum andern durch die Felder „id und person2_id“ (1 : n). Die Tabelle t_person_zu_beziehung ist mit der Tabelle t_beziehung durch die Felder „beziehung_id und id“ (n : 1) verbunden. Soweit so gut. Jetzt zum Formular, wo ich irgendwie nicht weiter komme:
Im Datenbankformular f_beziehungen kommt die Tabelle t_personen in die Ebene des Hauptformulars personen. In diesem Hauptformular habe ich ein Unterformular angelegt, dem die Zwischentabelle t_person_zu_beziehung zugrunde liegt. Dort hinein wiederum habe ich ein weiteres Unterformular gelegt, dem die Tabelle t_beziehung zugrunde liegt.
In das Unterformular person_zu_beziehung habe ich dann ein Tabellensteuer-Element gelegt, dessen Spalten ich wiederum als Listenfelder dargestellt wissen möchte. Es handelt sich dort um zwei Spalten, die Spalte „ist“ (Beziehungsart, Feld beziehung_id) und die Spalte „von“ (Name der Person, person2_id). Aber genau hier scheint etwas schief zu laufen...
Vielleicht kann sich das mal jemand anschauen. Meine Datei kann ich leider nicht hochladen.
Gruß, Martin
Ich hoffe ich bin hier richtig. Wenn nicht, bitte ich um Nachsicht.
Ich möchte gerne eine Datenbank erstellen, bei der die Beziehung zu einer Person dargestellt werden soll. Da ich Schwierigkeiten habe bei der Erstellung des entsprechenden Formulars habe, schreibe ich einfach mal, was ich gemacht habe. Vermutlich habe ich irgendwo einen Denkfehler:
Ich habe zwei Tabellen (t_personen und t_beziehung), die ich miteinander verknüpfen möchte. Ich unterstelle, dass eine Person viele Beziehungen (Vater, Freund, Ehepartner, Sohn, etc.) haben kann und umgekehrt eine Beziehung (z.B. Freund) vielen Personen zugeordnet werden kann. Ich schließe daraus, dass es sich um eine m:n-Relation handelt. Ich benötige also eine Zwischentabelle (t_person_zu_beziehung). Ich habe also dann insgesamt drei Tabellen mit folgenden Feldern:
t_personen
- id
- vornamen
- famname
t_person_zu_beziehung
- person_id
- person2_id
- beziehung_id
t_beziehung
- id
- beziehung
Die Tabelle t_personen ist mit der Tabelle t_person_zu_beziehung zweifach verbunden, einmal durch die Felder „id und person_id“ (1 : n) und zum andern durch die Felder „id und person2_id“ (1 : n). Die Tabelle t_person_zu_beziehung ist mit der Tabelle t_beziehung durch die Felder „beziehung_id und id“ (n : 1) verbunden. Soweit so gut. Jetzt zum Formular, wo ich irgendwie nicht weiter komme:
Im Datenbankformular f_beziehungen kommt die Tabelle t_personen in die Ebene des Hauptformulars personen. In diesem Hauptformular habe ich ein Unterformular angelegt, dem die Zwischentabelle t_person_zu_beziehung zugrunde liegt. Dort hinein wiederum habe ich ein weiteres Unterformular gelegt, dem die Tabelle t_beziehung zugrunde liegt.
In das Unterformular person_zu_beziehung habe ich dann ein Tabellensteuer-Element gelegt, dessen Spalten ich wiederum als Listenfelder dargestellt wissen möchte. Es handelt sich dort um zwei Spalten, die Spalte „ist“ (Beziehungsart, Feld beziehung_id) und die Spalte „von“ (Name der Person, person2_id). Aber genau hier scheint etwas schief zu laufen...
Vielleicht kann sich das mal jemand anschauen. Meine Datei kann ich leider nicht hochladen.
Gruß, Martin
Zuletzt geändert von nehemia am Sa 22. Jun 2013, 17:36, insgesamt 1-mal geändert.
Re: Formularerstellg. - Darstellg. von Beziehungen
Dateiendung umbenennen oder zippen z.B. Dateiname.odb.zipnehemia hat geschrieben:Meine Datei kann ich leider nicht hochladen.
Mach Dir bitte folgenden Gefallen, und benenne folgende Felder um (bzw führe eine ID für die Tabelle "t_person_zu_beziehung" ein):
nehemia hat geschrieben:t_personen
* id => ID_Person
- vornamen
- famname
t_person_zu_beziehung
* ID_person_zu_beziehung
- person_id => ID_Person_ist
- person2_id => ID_Person_von
- beziehung_id
t_beziehung
* id => ID_beziehung
- beziehung
*: Primärschlüssel
Ist nicht notwendig, wenn Du im ersten Unterformular die ID_Beziehung als Litenfeld darstellst.nehemia hat geschrieben:Dort hinein wiederum habe ich ein weiteres Unterformular gelegt, dem die Tabelle t_beziehung zugrunde liegt.
Dir ist bewusst, dass Beziehungen in einem Stammbaum in die eine oder andere Richtung anderen Namen haben? Du musst dazu enweder pro Beziehung 2 Datensätze anlegen (1 ist Sohn von 2) und (2 ist Vater von 1), oder die Tabelle "t_person_zu_beziehung" ändern:
Code: Alles auswählen
t_person_zu_beziehung:
* ID_person_zu_beziehung
- ID_Person_ist
- ID_Person_von
- beziehung_id_ist
- beziehung_id_von
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Formularerstellg. - Darstellg. von Beziehungen
Vielen Dank für die Antwort.
Danke auch für den Tipp mit der Datei. Ich lad sie jetzt vorsichtshalber nochmal hoch. Verstehe nicht warum die Endung *.odb bei mir nicht hochzuladen ist. Andere konnten das doch auch...
Danke auch für den Tipp mit der Datei. Ich lad sie jetzt vorsichtshalber nochmal hoch. Verstehe nicht warum die Endung *.odb bei mir nicht hochzuladen ist. Andere konnten das doch auch...
- Dateianhänge
-
- Beziehungsart.odb.zip
- Hier also die Datenbank
- (11.65 KiB) 268-mal heruntergeladen
Re: Formularerstellg. - Darstellg. von Beziehungen
es geht da nur um die Endung - odb ist verwunderlicherweise nicht erlaubt...
Für die richtige Darstellung im Formular musst Du nur die eine der 2 Verknüpfungen löschen.
Haupt- und Unterformular sind mit:
verbunden.
lösche einfach die "person2_id=id" und es werden alle DS angezeigt.
Für die richtige Darstellung im Formular musst Du nur die eine der 2 Verknüpfungen löschen.
Haupt- und Unterformular sind mit:
Code: Alles auswählen
person_id=id UND person2_id=id
lösche einfach die "person2_id=id" und es werden alle DS angezeigt.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Formularerstellg. - Darstellg. von Beziehungen
Danke, das war die Lösung. 

An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.