Mehrere Referenzwerte pro Feld

Ich bin gerade dabei die Datenbank von meinem alten Mac zu Libreoffice zu migrieren.

Dabei habe ich eine Tabelle namens “Kunden”, die auch die Spalte “Kategorien” besitzt. Bei der alten Datenbank konnte ich in der Form Checkboxen anklicken, die Kategorien, und in der Tabelle würde das Kategorienfeld dieses Kundens, die Kategorien die ich angeklickt habe anzeigen.

Bsp.:
Max / Mustermann / 24 / Sammler, Abonnent ← Die Kategorien

Wenn ich also mehrere Checkboxen angeklickt habe, stehen auch all diese Kategorien die ich angeklickt habe in dem Feld des Kundens. Bei Libreoffice Base scheine ich aber nicht mehrere Referenzwerte pro Feld zu haben dürfen. Ist es irgendwie möglich doch mehrere Kategorien pro Feld zu haben?

LG,
Schweini

Base arbeitet mit relationalen Datenbanken. Und da wird so etwas vom Prinzip her anders gelöst. Damit mehrere Kategorien auf einen Kunden zutreffen wird dort eine n:m-Beziehung zwischen verschiedenen Tabelle aufgestellt. Du brauchst Deine Tabelle Kunden, eine Tabelle relKundenKategorien und eine Tabelle Kategorien. In der Tabelle relKundenKategorien werden nur die Primärschlüssel aus Kunden und die Primärschlüssel aus Kategorien zusammen eingegeben. Sie bilden da als Pärchen gemeinsam den Primärschlüssel.

Die Tabelle “Kunden” kannst Du für das Formular als Hauptformular auswählen. Die Tabelle relKundenKategorien wird das Unterformular. Dieses Unterformular besteht aus einem Feld, nämlich dem Tabellenkontrollfeld für nur eine Sache, nämlich der Kategorie in einem Listenfeld. Jetzt kannst Du alle möglichen Kategorien für einen Kunden auswählen.

Dieses Verfahren wird in der Einstiegsdatenbank des Handbuches erläutert. Da geht es um Sport - Teilnehmer und verschiedene Sportarten.

Mit Tricks geht so etwas auch innerhalb eines Feldes in einer Tabelle. Habe ich in dem Buch zu Beispieldatenbanken stehen. Dann weißt Du einem Feld eine 1, dem nächsten eine 2, dem darauffolgenden eine 4, dann 8 usw. zu. Mittels Makro kannst Du dann den Gesamtwert speichern. Das Auslesen geht auch mit Abfragen. Hier speicherst Du aber nur die Zahl, nicht jedoch, was mit der Zahl verbunden ist. Das steht lediglich im Formular, nicht in der Datenbank.

Das Ganze läuft mit Markierfeldern. Nicht mit Optionsfeldern. Optionsfelder sind grundsätzlich dazu gedacht, gemeinsam an ein Datenfeld gebunden zu werden und dann nur eine einzige Option zu zu lassen.

Vielen Dank für die schnelle Antwort, ich werde mir das anschauen und mich dann wieder melden!

Meine Tabelle “Kategorien” hat leider das Problem keine ID als Primärschlüssel zu haben, zumindest keine, mit der man sie mit der Tabelle “Kunden” eine Beziehung binden kann. Das einzige was die beiden zusammen haben sind die beiden Spalten “Vorname” und “Zuname”, wie mache ich das jetzt?

Die Art des Primärschlüssels ist doch gleich. Oder hast Du da das ganze Textfeld als Primärschlüssel gesetzt? In der Beispieldatenbank ist da auch ein kleines Textfeld im Primärschlüssel - das Kürzel für die Sportart.

Zur Not hast Du dann in der Verknüpfungstabelle eben die Kategorie direkt ausgeschrieben stehen. Oder Du kopierst einfach die Tabelle und lässt Dir bei der Erstellung dann ein neues Primärschlüsselfeld erstellen.

Tut mir leid für die späte Antwort, ich hatte das Ganze schon wieder vergessen.
Was meinen sie mit die Art des Primärschlüssels ist gleich? Übrigens habe ich auch Markierfelder verwendet, keine Optionsfelder.

Wenn Du eine Tabelle hast, in die Du in Base Daten eingeben kannst, dann muss doch ein Primärschlüssel existieren. Oder arbeitest Du gar nicht mit der internen HSQLDB?

Art des Primärschlüssels: Ist das ein Zahlenfeld oder ein Textfeld oder ein Datumsfeld in der Tabelle. Nur muss dieses Feld immer eindeutig sein, wenn Du mit einer Datenbank arbeitest, die auf Relationen aufbaut.

Den Primärschlüssel ist die von von Base erstellte Spalte “ID”. Da die Tabelle “Kategorien” jedoch eine CSV-Datei ist, die von dem alten Datenbankmanager exportiert wurde, haben die Kunden dort keine identische ID, wie die in der Tabelle Kunden.