Hintergrund:
Moin Leute. Ich habe eine große Sammlung an Filmen auf DVD und Blu-ray. Letzte Woche kam mir der Gedanke, alles wie nett es doch wäre, auf Knopfdruck weiteren Infos zum Film und Schauspieler zu haben, oder sich einen Trailer ansehen zu können. Schwub, die Idee einer Datenbank war geboren (auch als Testprojekt für meine noch viel größere Retro-Spiele Sammlung mit mehr als 1000 Spielen). Dummerweise hatte ich bis zu diesem Zeitpunkt absolut keine Ahnung wie sowas geht oder wie Datenbanken überhaupt funktionieren. Also wirklich Null Ahnung von gar nichts.
An dieser Stelle ein dickes Dankeschön an Lucky Müller und TheFrugalComputerGuy für die Tutorials auf YouTube, dank denen ich mich in die Materie einarbeiten konnte!
Es hat mich fast eine Woche gekostet und ich musste insgesamt zweimal komplett von Vorne anfangen, aber ich bin wirklich sehr zufrieden mit dem Ergebnis! Klar, ein Profi hätte nicht mal eine Stunde für sowas gebraucht, aber wenn man erstmal lernen muss, was überhaupt eine M zu N Beziehung ist und warum ich ohne diese einem Film nicht beliebig viele Tags (Genres) zuordnen kann, schlägt man sich schonmal die halbe Nacht um die Ohren...
Aktueller Stand:
Ich nutze die aktuelle LibreOffice Version 7.3.0 und arbeite auf einem Windows 10 PC (64 Bit).
Die Datenbank ist so weit eigentlich fertig. Alle Tabellen sind erstellt und die Spalten mit aussagekräftigen Namen versehen, um stets die Übersicht zu behalten. Die Beziehungen sind verknüpft und die Tabellen mit einigen Testdaten befüllt, um die Funktionen der Formulare zu testen.
Ich habe insgesamt 4 Formulare. Das erste dient zum Eingeben und bearbeiten der Daten der Filme. Über ein Unterformular kann ich zudem 'on the fly' neue Tags (Genres) erstellen, ohne extra in die entsprechende Tabelle gehen zu müssen. Das zweite Formular ist praktisch dasselbe, dient aber zum Eingeben der Daten der Schauspieler (Actor). Supi!
Das dritte Formular kann keine Daten schreiben oder ändern und dient zum Durchsuchen der Filme, inklusive einer Anzeige des Covers. Über eine paar Schaltflächen kann ich bequem durch die Datensätze durchblättern. Zudem konnte ich mithilfe dieses Beitrages im Forum von F3K Total eine Schaltfläche einfügen, mit der den (nicht sichtbaren) Link zu einem Trailer auf YouTube öffnen kann. Klasse!
Das Makro dafür sieht so aus:
Code: Alles auswählen
sub S_insert_target_Url
oform = thiscomponent.drawpage.forms.MainForm
surl = oform.getstring(7)'Link steht in 7. Spalte der Tabelle
obutton = oform.cmdopenwww 'Button mit Einstellung: Aktion "Dokument/Webseite öffnen"
obutton.TargetURL = surl
end sub
Problem:
Das vierte und letzte Formular ist fast das gleiche wie Formular 3, dient aber zum Durchsuchen der Actor (Schauspieler). Dummer weise bekomme ich seit TAGEN zwei Sachen nicht in den Griff:
1. Das Makro zum Öffnen der Links funktioniert nicht! Obwohl ich alles genauso gemacht habe wie in Formular 3 und mich auch wieder an die Anleitung von F3K Total gehalten habe, bekomme ich ständig folgende Fehlermeldung:
Code: Alles auswählen
BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.sdbc.SQLException
Message: Der Cursor zeigt vor die erste beziehungsweise hinter die letzte Zeile..
Zudem habe in Formular 4 zwei verschiedene Schaltflächen zum Öffnen von Links auf jeweils eigenen Unterformularen (einmal für YouTube Videos und eine zweite für diverse Internetseiten wie Wikipedia, IMDb usw.)
Braucht es da ein zweites (angepasstes) Makro, oder kann ich das gleiche auch für die zweite Schaltfläche nehmen, solange beide Schaltflächen auf unterschiedlichen Unterformularen liegen?
2. Die Links befinden sich jeweils in einem eigenen Tabellen-Steuerelement auf eigenen Unterformularen. Klicke ich in einer der Tabelle den Namen einer Seite/eines Videos an, wird der Link in ein nicht sichtbares Textfeld geschrieben, auf welches ich dann wieder das Makro anwenden kann.
Nun hätte ich es aber wesentlich lieber anstatt eines Tabellen-Steuerelement mit einer Liste aller Inhalte, stattdessen ein Listenfeld zu benutzen um einen Datensatz auszuwählen und dann wieder den Link in das nicht sichtbare Textfeld zu schreiben. Aber wie??? Dieses Problem hat mich schon 2 Nächte Schlaf gekostet...
Ein Bild sagt mehr als tausend Worte, oder in diesem Fall eben die .odb
Darum habe ich mein Projekt inklusive der Testdaten als Anhang beigefügt, damit ihr selbst mal ein Blick darauf werfen könnt. Ich bin sicher, dass das nur eine Kleinigkeit ist die sich beheben lässt und ich bin für jede Hilfe sehr dankbar.
Beste Grüße