Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Hilfe mit der Darstellung von m:n Beziehungen

Begonnen von Eulisker, Dezember 16, 2023, 13:37:18

⏪ vorheriges - nächstes ⏩

Eulisker

Hallo.

Ich bin neu hier und ein absoluter Neuling, was Datenbanken angeht, habe aber über Office 365 Zugriff auf Access.
Ich habe eine größere PC Spiele Sammlung in die ich gern ein wenig Ordnung bringen möchte. Bevor ich zu meine konkreten Fragestellung komme erst mal ein kleiner Hintergrund, was ich mit der Datenbank machen möchte.

Die Sammlung hat grob 4 Bereiche:
- Spiele in großen Papp Boxen
- lose Disketten oder CDs
- lose Handbücher
- Lösungsbücher zu den Spielen

Ich möchte mit der Datenbank einmal jeweils eine Liste der 4 Bereiche erstellen können (Ich vermute das wird über eine Abfrage gehen) und ich möchte eine Auflistung über alles was ich habe erstellen können, wo zu einem Spiel Namen alles aufgelistet ist was ich davon habe. Egal ob es eine vollständige Box, eine lose Diskette oder ein Buch dazu ist. Ich denke das wird über einen Bericht gehen. Ich habe mich aber mit Berichten und Formularen noch nicht beschäftigt. Erstmal wollte ich eine funktionierende Datenbank haben. Hier ist eine Übersicht des Beziehungsentwurfes wie er jetzt gerade aussieht.



Jetzt kommt langsam meine konkrete Frage. An einigen Stellen müsste ich einen Datensatz mehreren anderen Datensätzen zuordnen. Bspw. hat ein Lösungsbuch mehrere Autoren, oder ein Lösungsbuch behandelt mehrere Spiele, oder bei den Boxen gibt es auch Compilations, die mehrere Spiele beinhalten.
Ich habe schon m:n Beziehungen gefunden und denke, dass diese die Lösung für mein Problem sind. Allerdings weiss ich nicht wie ich es schaffen kann, dass mir in einer Abfrage nicht mehrere Datensätze für das selbe Buch angezeigt werden. Ich habe mir eine kleine Test Tabelle gemacht:



Wenn ich mir jetzt eine Abfrage erstelle habe ich natürlich zwei Datensätze für das selbe Buch. Kann ich das  irgendwie schaffen, das einfach alle Autoren in einem Feld angezeigt werden? Ist eine Abfrage einfach das falsche Werkzeug dafür?

Ich erkläre gerne weitere Details der Datenbank oder kann sie auch einfach irgendwohin hochladen wenn das hilft.
Vielen Dank schon einmal für die Hilfe.

MzKlMu

Hallo,
ZitatBspw. hat ein Lösungsbuch mehrere Autoren,
Ja, das ist n:m. Du brauchst also eine Zwischentabelle mit einem FS zum Autor und einem FS zum Lösungsbuch.
Zitatoder ein Lösungsbuch behandelt mehrere Spiele
Auch n:m.
ZitatWenn ich mir jetzt eine Abfrage erstelle habe ich natürlich zwei Datensätze für das selbe Buch.
Das ist bedeutungslos und in Abfragen wie vor Dir angedacht nicht zu verhindern. Im Normalfall verwendet man keine Abfragen direkt zur Datenansicht. Da nimmt man immer Formulare.
Z.B. ein Haupformular zur Anzeige der Lösungsbücher und darin ein Unterformular zur Anzeige/Zuordnung (über Kombifeld) der Autoren. Hafo und Ufo sind über die schlüsselfelder zu verknüpfen.

Hier mal ein Tutorial zu Access:

https://www.access-tutorial.de/

Da wird auch Hafo/Ufo erklärt.
Gruß Klaus

Eulisker

Ah vielen Dank. Ich war unter der falschen Annahme, dass Formulare nur für die Dateneingabe benutzt werden. Ich lese mich da mal weiter ein. :)

Eulisker

#3
Ich habe mir inzwischen erfolgreich ein funktionierendes Formular basteln können.



Alles was direkt in tblLösungsbücher gespeichert wird (Name, ISBN, Notizen, usw.) funktioniert auch einwandfrei. Allerdings werden die Sachen, die in verbundenen Tabellen gespeichert werden nicht korrekt gespeichert. Hier mal am Beispiel der Autoren.
Hier sind die Beziehnungen:

Wenn ich jetzt als Autor Richard Eisenmenger einstelle, dann wird in der Autorentabelle ein neuer Eintrag angelegt, der auf den ID 9 verweist.


In der Zwischentabelle verweist dann auch das Buch mit ID 8 auf den Autor ID 15, der dann wiederum auf den Autor ID 9 verweist.


Auch wenn ich irgendwo einen Autor ändere, wird das nicht in der Zwischentabelle angepasst, sondern in der Autorentabelle der Name durch die ID Nummer des neuen Namen ersetzt.
Das passiert so auch bei den anderen Tabellen die Bezug zur Lösungsbuchtabelle haben (Jahre, SpielName, Verlag)

Ich mache vermutlich einen sehr banalen Fehler, aber ich finde leider die Lösung nicht.

E: Inzwischen betrifft es nur noch die Unterformulare. Bei Sprache, Verlag und so weiter habe ich den Fehler gefunden. Ich hatte direkt die Felder aus den Herkunftstabellen hinzugefügt. Bei den Unterformularen habe ich es aber leider noch nicht hinbekommen. Ich müsste vermutlich die Datensatzherkunft auf die Zwischentabelle stellen. Aber wie bekomme ich dann die Namen der Autoren angezeigt? In der Tabelle stehen ja nur die zu verknüpfenden IDs.

E²: Und das andere Problem konnte ich auch beseitigen :)

Beaker s.a.

ZitatIch müsste vermutlich die Datensatzherkunft auf die Zwischentabelle stellen.
Richtig.
ZitatAber wie bekomme ich dann die Namen der Autoren angezeigt?
Mit einem Kombi.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)