Seite 1 von 1

Re: doppelte Datensätze gleichzeitig verbieten und erlauben

Verfasst: Di, 14.01.2014 19:26
von RobertG
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

Re: doppelte Datensätze gleichzeitig verbieten und erlauben

Verfasst: Di, 14.01.2014 20:21
von F3K Total
Hallo Berna dette,
gerade war ich dabei dir etwas zu schreiben und dir eine Beispieldatenbank hochzuladen, da hat Robert seinen Beitrag gepostet.
Und der ist Klasse. Danke Robert.
Die Idee mit dem zusammengesetzten Index für die Felder "Filmtitel" und "released - Jahr" hatte ich nicht auf dem Schirm, wollte sie dann gleich einmal ausprobieren, und: funktioniert einwandfrei.
Ich schlage vor, die Spalte Filmtitel vom Datentyp VARCHAR_IGNORECASE zu wählen, dann werden z.B. das Boot und Das Boot als "gleich" erkannt.
Die von Robert vorgeschlagene Filterfunktion habe ich auch im Formular.
Zum Suchen eines Filmes einfach einen Teil des Titels in das Suchfeld eingeben und den Button Suchen drücken.
Um wieder alle Filme angezeigt zu bekommen, das Suchfeld leeren, dann den Button drücken.
Anbei die Beispieldatenbank.

Viel Erfolg
Gruß R