Guten Tag,
zunächst großen Dank an die Mitarbeiter von Base_Gesamtband_einseitig_V50 und besonders an F3K Total für das 05 OpenOffice Base: Ein Formular mit Suchfunktion erstellen Video, alles sehr hilfreich.
Die Datensätze meiner "Medien" Datenbank bestehen mehrheitlich aus Fremdschlüsseln. Die anderen Tabellen stehen alle in 1:n Beziehungen zu "Medien". Die meisten dieser Fremdschlüssel in "Medien" muss ich gelegentlich ändern. Mit Listenfeldern und einem auf die Tabelle zugreifenden Formular geht das, allerdings benötige ich bei den vielen Datensätzen eine gute Suche. Editierbare Abfragen lassen keine Änderungen der Primärschlüssel zu, eine Filtertabelle hilft nicht.
Ein Formular bezieht sich auf eine Abfrage, welche nach Autorennamen und Titeln filtert sowie die gewünschten Spalten einschließt. Ein Unterformular, welches sich auf die Tabelle "Medien" bezieht, verknüpft die Autoren ID der beiden Formulare, weist das Ergebnis der Suche aus, und ermöglicht das komfortable Bearbeiten der Primärschlüssel mittels Listenfelder.
Die Verknüpfung der Autoren ID bewirkt, dass nur der erste Autor der Abfrage angezeigt wird, sofern verschiedene Autoren gefiltert werden. Das Abfrageergebnis wird gegebenenfalls nicht vollständig im Tabellenformular angezeigt. Lassen sich die beiden Formulare so verknüpfen, dass im Unterformular sämtliche Datensätze des Hauptformular angezeigt werden, gegebenenfalls auch bei unterschiedlichen IDs in weiteren verknüpften Spalten?
In "Medien" will ich neben AutorenID in einer weiteren Spalte ÜbersetzerID erfassen. Kann ich die Tabelle "Autoren" zugleich mit AutorenID und ÜbersetzerID in "Medien" in einer Abfrage verknüpfen? Oder führt die Benutzung von mehreren Fremdschlüsseln in einer Tabelle, welche sich auf nur eine andere Tabelle (1:n) beziehen zu Problemen?
Grüße
Malt
LibreOffice
Version: 4.4.7.2
Gebietsschema: de_DE
Microsoft Windows 10 Home x64
❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Formular - Änderung Primärschlüssel
Re: Formular - Änderung Primärschlüssel
Hallo Malt,
an manchen Stellen habe ich Probleme, das zu verstehen, was Du machen willst. Deshalb nur so viel:
Bei Datensatzfilterung musst Du darauf achten, dass tatsächlich alle zusammenhängenden Daten in einer Ansicht erhalten sind. Bei mehreren Autoren kannst Du dann den Filter so nutzen, dass Du, wie vermutlich schon im Formular, die Autoren in einem Unterformular der Ansicht erscheinen lässt. Die sind schließlich über das Fremdschlüsselfeld aus der Medientabelle erreichbar.
Eine Tabelle kann ohne Probleme zwei Fremdschlüssel des gleichen anderen Tabelle erhalten. So könnten z.B. zwei Autoren grundsätzlich nebeneinander in einer Tabelle über Fremdschlüsselfelder enthalten sein. Ob die Fremdschlüssel nun Autor_ID oder Übersetzer_ID heißen ist dabei nicht von Bedeutung.
Gruß
Robert
an manchen Stellen habe ich Probleme, das zu verstehen, was Du machen willst. Deshalb nur so viel:
Bei Datensatzfilterung musst Du darauf achten, dass tatsächlich alle zusammenhängenden Daten in einer Ansicht erhalten sind. Bei mehreren Autoren kannst Du dann den Filter so nutzen, dass Du, wie vermutlich schon im Formular, die Autoren in einem Unterformular der Ansicht erscheinen lässt. Die sind schließlich über das Fremdschlüsselfeld aus der Medientabelle erreichbar.
Eine Tabelle kann ohne Probleme zwei Fremdschlüssel des gleichen anderen Tabelle erhalten. So könnten z.B. zwei Autoren grundsätzlich nebeneinander in einer Tabelle über Fremdschlüsselfelder enthalten sein. Ob die Fremdschlüssel nun Autor_ID oder Übersetzer_ID heißen ist dabei nicht von Bedeutung.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formular - Änderung Primärschlüssel
Hallo Robert,
Dank für Deine Antwort.
Ich möchte aus meiner "Medien" Tabelle bestimmte Datensätze filtern, und in diesen gefilterten Datensätzen dann Fremdschlüssel ändern.
Das Filtern übernimmt das Formular, welches auf die Abfrage zugreift. Ein Unterformular greift auf die Tabelle zu - notwendig um Fremdschlüssel zu ändern - und verknüpft mit dem Formular, damit nur die gefilterten Datensätze angezeigt werden.
SQL in der Abfrage:
Das Abfrageformular zeigt den neuesten Datensatz in der Tabelle nicht an "3796", jedoch das Tabellenformular. Verknüpfe ich AutorID und TitelID und suche mit einem Teil von einem Autorennamen und Titel, zeigt das Unterformular nur noch einen von drei Datensätzen an: Woran liegt es, dass bei der Verknüpfung von IDs im Unterformular nur ein ID genommen wird und nicht alle IDs aus der Abfrage, so dass die beiden Formulare keine identischen Datensätze zeigen?
Grüße
Malt
Dank für Deine Antwort.
Ich möchte aus meiner "Medien" Tabelle bestimmte Datensätze filtern, und in diesen gefilterten Datensätzen dann Fremdschlüssel ändern.
Das Filtern übernimmt das Formular, welches auf die Abfrage zugreift. Ein Unterformular greift auf die Tabelle zu - notwendig um Fremdschlüssel zu ändern - und verknüpft mit dem Formular, damit nur die gefilterten Datensätze angezeigt werden.
SQL in der Abfrage:
Eigenschaften Unterformular: Ergebnis einer Abfrage mit einem Teil von einem Autorennamen. Das untere Formular, welches auf die Tabelle zugreift und mit der Abfrage verknüpft, zeigt nur den Autor 48 an, während die Abfrage verschiedene Autoren filtert, entsprechend dem unvollständigen Namen.AND ( LOWER ( "author"."name" ) LIKE '%' || LOWER ( :name ) || '%' OR :name IS NULL ) AND ( LOWER ( "title"."title" ) LIKE '%' || LOWER ( :title ) || '%' OR :title IS NULL )
Das Abfrageformular zeigt den neuesten Datensatz in der Tabelle nicht an "3796", jedoch das Tabellenformular. Verknüpfe ich AutorID und TitelID und suche mit einem Teil von einem Autorennamen und Titel, zeigt das Unterformular nur noch einen von drei Datensätzen an: Woran liegt es, dass bei der Verknüpfung von IDs im Unterformular nur ein ID genommen wird und nicht alle IDs aus der Abfrage, so dass die beiden Formulare keine identischen Datensätze zeigen?
Grüße
Malt
Re: Formular - Änderung Primärschlüssel
Hallo Malt,
hat die Tabelle "media" bereits "authorID" gespeichert? Dann gibt es ja nur einen Autor pro Medium.
Was soll die "titleID"? Hast Du einen Datenbank, in der neben dem eigentlichen Titel eines Mediums auch Untertitel (Kapitel) aufgeführt werden?
Wenn Du "authorID" mit "authorID" des Unterformulars verbindest, dann zeigt das Unterformular natürlich nur den einen Autor an. Gleiches gilt für "titleID". Und beide zusammen grenzen das Ganze natürlich besonders ein - wobei Nullwerte vermutlich gar nicht angezeigt werden.
Nur mit Screenshots lässt sich da recht wenig anfangen. Stelle doch die Datenbank einmal (ohne Daten oder nur mit ein paar Dummydaten) hier zur Verfügung.
Gruß
Robert
hat die Tabelle "media" bereits "authorID" gespeichert? Dann gibt es ja nur einen Autor pro Medium.
Was soll die "titleID"? Hast Du einen Datenbank, in der neben dem eigentlichen Titel eines Mediums auch Untertitel (Kapitel) aufgeführt werden?
Wenn Du "authorID" mit "authorID" des Unterformulars verbindest, dann zeigt das Unterformular natürlich nur den einen Autor an. Gleiches gilt für "titleID". Und beide zusammen grenzen das Ganze natürlich besonders ein - wobei Nullwerte vermutlich gar nicht angezeigt werden.
Nur mit Screenshots lässt sich da recht wenig anfangen. Stelle doch die Datenbank einmal (ohne Daten oder nur mit ein paar Dummydaten) hier zur Verfügung.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Formular - Änderung Primärschlüssel
Hallo Robert,
Die Titel Tabelle benutze ich, weil öfters identische Titel vorkommen; die Datensätze unterscheiden sich jedoch in anderen Spalten.
Grüße
Malt
Mein Fehler; die Abfrage benutzt "innerer Verbund". Ich trug in eine der verbundenen Spalten keinen Wert ein, deshalb filterte die Abfrage diesen nicht.Das Abfrageformular zeigt den neuesten Datensatz in der Tabelle nicht an "3796", jedoch das Tabellenformular.
Die Titel Tabelle benutze ich, weil öfters identische Titel vorkommen; die Datensätze unterscheiden sich jedoch in anderen Spalten.
Das Abfrageformular filtert verschiedene "authorID", das über "authorID" verknüpfte Unterformular übernimmt nur eine "authorID", die "authorID" aus der ersten Zeile des Abfrageformulars. Besser für mich wäre, dass alle "authorID" aus dem Abfrageformular im Unterformular erscheinen. Ich hätte dann ein Abfrageergebnis in einer Tabelle, wo ich Fremdschlüssel ändern könnte. Das scheint aber nicht erreichbar.Wenn Du "authorID" mit "authorID" des Unterformulars verbindest, dann zeigt das Unterformular natürlich nur den einen Autor an.
Grüße
Malt
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.