Re: doppelte Datensätze gleichzeitig verbieten und erlauben
Verfasst: Di, 14.01.2014 19:26
Hallo Bernadette,
ich fange einmal mit dem für mich einfachsten Teil an:
Doubletten kannst und solltest Du direkt in der Tabelle über die Definition ausschließen. Du müsstest in der Tabelle "filme" einen Index erzeugen, der die Eindeutigkeit für die Felder "Filmtitel" und "released - Jahr" zusammen regelt. Wie so etwas geht ist im Handbuch beschrieben - LO Base-Handbuch 4.1, im Kapitel
Tabellen→ Erstellung von Tabellen → Erstellung mit der grafischen Benutzeroberfläche → Einstellung eines Indexes (S. 56).
Der Index schützt jetzt erst einmal die Tabelle davor, dass überhaupt eine Doublette vorkommt.
Jetzt musst Du als nächstes erst einmal eine ordentliche Verbindung zwischen der Haupt-Tabelle und der Sub-Tabelle hin bekommen. In die Tabelle "Schedule" gehört nicht der Filmtitel, sondern "Film_ID" als Fremdschlüssel. Dann hast Du die Filme im Hauptformular und die Tabelle "Schedule" im Unterformular. Wenn Du die entsprechende Verbindung auch unter Extras → Beziehungen definierst, dann schlägt Dir der Formularassistent bei der Wahl der Tabelle "Filme" im Hauptformular auch die entsprechende andere Tabelle für das Subformular vor. Sortierst Du jetzt noch die Filme nach dem Filmtitel (so eine Sortierung ist im Formular oder per Abfrage möglich), so findest Du auch schnell den Film, falls Du den Titel schon hast. Ich würde bei vielen Filmen allerdings vorfiltern. Wie so ein Filter ohne Makrokenntnisse gebaut werden kann steht ebenfalls im Handbuch, allerdings an verschiedenen Stelle (da muss ich wohl einmal etwas aufräumen ...). Zuerst bei den Formularen, dann aber auch bei den Datenbankaufgaben, wobei die Suche für Dich am interessantesten sein dürfte: Irgendeinen Teil des Titels eingeben, einen Button drücken und alle Titel mit diesen Inhalt, egal an welcher Stelle, werden angezeigt.
Gruß
Robert
ich fange einmal mit dem für mich einfachsten Teil an:
Doubletten kannst und solltest Du direkt in der Tabelle über die Definition ausschließen. Du müsstest in der Tabelle "filme" einen Index erzeugen, der die Eindeutigkeit für die Felder "Filmtitel" und "released - Jahr" zusammen regelt. Wie so etwas geht ist im Handbuch beschrieben - LO Base-Handbuch 4.1, im Kapitel
Tabellen→ Erstellung von Tabellen → Erstellung mit der grafischen Benutzeroberfläche → Einstellung eines Indexes (S. 56).
Der Index schützt jetzt erst einmal die Tabelle davor, dass überhaupt eine Doublette vorkommt.
Jetzt musst Du als nächstes erst einmal eine ordentliche Verbindung zwischen der Haupt-Tabelle und der Sub-Tabelle hin bekommen. In die Tabelle "Schedule" gehört nicht der Filmtitel, sondern "Film_ID" als Fremdschlüssel. Dann hast Du die Filme im Hauptformular und die Tabelle "Schedule" im Unterformular. Wenn Du die entsprechende Verbindung auch unter Extras → Beziehungen definierst, dann schlägt Dir der Formularassistent bei der Wahl der Tabelle "Filme" im Hauptformular auch die entsprechende andere Tabelle für das Subformular vor. Sortierst Du jetzt noch die Filme nach dem Filmtitel (so eine Sortierung ist im Formular oder per Abfrage möglich), so findest Du auch schnell den Film, falls Du den Titel schon hast. Ich würde bei vielen Filmen allerdings vorfiltern. Wie so ein Filter ohne Makrokenntnisse gebaut werden kann steht ebenfalls im Handbuch, allerdings an verschiedenen Stelle (da muss ich wohl einmal etwas aufräumen ...). Zuerst bei den Formularen, dann aber auch bei den Datenbankaufgaben, wobei die Suche für Dich am interessantesten sein dürfte: Irgendeinen Teil des Titels eingeben, einen Button drücken und alle Titel mit diesen Inhalt, egal an welcher Stelle, werden angezeigt.
Gruß
Robert