zillo hat geschrieben:Hallo zusammen!
Ich versuche mich gerade am Beispiel einer Musikdatenbank in Datenbanken einzuarbeiten!
Ich habe 3 Tabellen in OOo2.0 erstellt. Die erste Tabelle nimmt die CD-Titel auf und hat die Felder CD_Nr. und CD_Titel! Die zweite Tabelle nimmt den Interpreten auf , mit den Feldern Interpret_Nr. und Interpret_Name. In der dritten Tabelle werden die Songs gespeichert. Dort habe ich die Felder Song_Nr., Song, Interpret und CD.
Primärschlüssel wurden vergeben und die Felder Interpret und CD aus der Tabelle Song wurden sog. Fremdschlüssel!
Anschließend habe ich eine Beziehung zwischen den drei Tabellen hergestellt.
Abfragen bekomme ich hin!
Ich möchte nun durch ein (bzw. mehrere) Formulare die Eingabe erleichtern. Ich stelle mir das so vor, dass ich z.B. nach der Eingabe eines Songs über eine Drop/Down-Auswahl den Interpret auswählen kann. Falls dieser nicht in der Liste ist, würde ich gerne über einen Schalter innerhalb des Formulars ein weiteres Formular öffnen, mit dem ich dann einen Interpreten in die entsprechende Tabelle hinzufügen und anschließend übernehmen kann!
Hat jemand einen Tipp wie ich da vorgehen muß? Oder gibt es auch eventuell andere Lösungsansätze?
Ich sage schonmal Danke!
Gruß
Zillo
Moinsen
Das Ganze ist nicht ganz trivial. Ich habe mir eine Mediendatenbank mit 6 oder 7 Tabellen erstellt, die ich ähnlich fülle.
Die Comboboxen fragen bei Erstellung ab, welche Tabelle sie darstellen sollen. Jetzt hab ich hinter den Listboxen ein Textfeld erstellt, daß die ID des in der Combobox gewählten Elementes darstellt. Dazu setzte ich eine "Dummy-Combobox" ein, dessen Inhalt ich dynamisch anpasse. Das Textfeld ist dann auch gleichzeitig der Eintrag in der "Haupttabelle".
Beispiel:
Haupttabelle: Nr, Titel, CD-ID, Interpret-ID
CD-Tabelle: CD-ID, CD Titel
Interpret-Tabelle: Interpret-ID, Name
In der Combobox gebe ich an, daß ich die Spalte "CD-Titel" aus der Tabelle CD-Tabelle sehen will. Mit dem Ereignis "modifiziert" verknüpfe ich ein Makro, das sinngemäß enthält:
Abfr="Select CD-ID from CD-Tabelle where CD-Titel=gewählter Eintrag aus der Combobox"
dummycombobox.listsource=Abfr
Jetzt beinhaltet die "Dummy-Combobox" des Ergebnis dieses Select-Befehls. Meistens (bei mir immer) kann es nur ein einziges Element dieser Abfrage geben. Das hole ich (sinngemäß):
Textfeld.Text=Dummycombobox.getElement(0)
und schreibe es in das Textfeld. - Voila - befüllt.
Die Syntax, die ich oben gewählt habe, stimmt natürlich nicht, es soll nur den Weg verdeutlichen, wie ich es realisiert habe.
Den gleichen Weg dann für den Interpreten.
Wenn der nicht da ist (oder die CD), dann kann man im Formular einen Knopf definieren, der eine Aktion (erste Dalogseite) "Dokument/Webseite öffnen" enthält. Im darunterliegenden URL-Feld steht der Dateiname des Formulars. Damit kann ich aus dem Formular heraus andere Formulare aufrufen.
Ach ja, ich habe die Formulare extern abgespeichert, also nicht innerhalb der Datenbank. Wie man daraus die Formulare aufrufen kann, weiß ich auch nicht.
Gruß
Hatti