Seite 1 von 1

Zettelkatalog in Base?

Verfasst: Mi 4. Mai 2016, 21:44
von kev1807
Aloha ihr Lieben,

Ich bin neu in der libreoffice base Welt, habe es noch nie gebraucht und habe jetzt einige Frägelchen:
Ich schreibe gerade an meiner Zulassungsarbeit in Geschichte (und danach werde ich eventuell zu einem ähnlichen Thema promovieren) und habe mir überlegt, einen virtuellen Zettelkatalog anzulegen.

Die Datenbank besteht zunächst aus 5 Quellen; Reiseberichte aus dem Jahr 1741.
Ich habe bestimmte Schlagworte anhand derer ich die Berichte sortieren möchte. Bspw. public, laws, constitution etc. --> Verschlagwortung quasi.
Im gleichen view soll allerdings gleichzeitig eine Sortierung nach Seitenzahlen und Verfasser möglich sein.
(Nach Verfasser geht prinzipiell auch in einem extra view ...)

Wie kriege ich es denn hin, wenn aus dem Dropdown-Menü ein Schlagwort ausgewählt wurde mir in einem Textfeld(Listenfeld???) alle Zitate mit dem Schlagwort nach Seitenzahl (Alternativ nach ID, bisher macht das keinen Unterschied) sortiert angezeigt werden??

Nach stundenlangem rumprobieren habe ich jetzt immerhin ein Dropdown-Menü hinbekommen ...

Ich hoffe mir kann schnell jemand helfen :-/ (nicht unbedingt ein ganzes Tutorial, ich les momentan schon ziemlich viel ... :-D)
Ich weiß, ich frage nach ziemlich viel, ich hoffe, dass irgendjemand ein ähnliches Projekt hat und mir grundsätzlichen fix erklären kann...

Liebe Grüße,
Kevin

Re: Zettelkatalog in Base?

Verfasst: Mi 4. Mai 2016, 22:04
von RobertG
Hallo Kevin,

wie sehen den die Tabellen und Felder deiner Datenbank aus? Du schreibst von 5 Quellen - sind das Texte, die komplett eingelesen wurden? Weist Du die Schlagworte dem ganzen Text zu oder geht es um Teile des Textes?

Das Prinzip der Filterung in einer einfachen Variante geht folgendermaßen:
1. Eine Tabelle "Filter" mit einem Feld "ID" als Ja/Nein-Feld und mindestens einem Feld z.B. "Schlagwort" erstellen.
2. Das Feld "ID" ist Primärschlüssel und wird zuerst einmal nur auf "Ja" (angekreuzt) eingestellt.
3. Ein Formularblatt mit einem Formular erstellen, in dem das Feld "Schlagwort" dieser Tabelle enthalten ist. Dabei darauf achten, dass der Filter in den Formulareigenschaften so gesetzt ist, dass nur das Feld "Ja" angezeigt wird und im Formular nur Daten geändert werden können und immer der aktuelle Datensatz angezeigt wird.
4. Daneben im selben Formularblatt ein Formular erstellen, in dem das Suchergebnis angezeigt werden soll. In diesem Formular befindet sich anschließend ein Tabellenkontrollfeld für das Suchergebnis sowie ein Button, der den Inhalt dieses Formulars aktualisieren soll.
5. Wird in dem Feld "Schlagwort" etwas eingegeben, so wird dieser Wert abgespeichert, wenn der Button im 2. Formular betätigt wird. danach wird das andere Formular aktualisiert.

Du brauchst jetzt eine Abfrage, die über den Filterwert beeinflusst wird:

Code: Alles auswählen

SELECT * FROM "Tabelle" WHERE "Schlagwort" = (SELECT "Schlagwort" FROM "Filter" WHERE "ID" = TRUE)
So weit die einfache Variante. Die Angabe ' WHERE "ID" = TRUE ' kann auch wegfallen, da die Filtertabelle nur einen Datensatz haben soll.

Das Ganze habe ich im Handbuch im Kapitel "Datenbank-Aufgaben" > "Datenfilterung" beschrieben. Macht dort knappe 3 Seiten aus ...

Gruß

Robert