Neuigkeiten:

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

Mobiles Hauptmenü

Probleme mit Tabellenbeziehungen

Begonnen von ChemSim, April 07, 2024, 17:05:20

⏪ vorheriges - nächstes ⏩

ChemSim

Hallo zusammen,

ich habe in meiner Datenbank die folgende Struktur:

Sie dürfen in diesem Board keine Dateianhänge sehen.

Zudem habe ich ein Formular frmProduzentenverwaltung, welches mit der Tabelle tblProduzenten verknüpft ist.  Neben den Textfeldern für den Produzenten, Adresse, PLZ und Ort gibt es auch ein Kombinationsfeld, welches per Abfrage auf die Tabelle tblLänder zugreift, um ein Land auszuwählen.

Weiterhin habe ich ein Formular frmAnlagenverwaltung, das mit der Tabelle tblAnlagen verknüpft ist. Dort gibt es ein Kombinationsfeld, um einen Standort auszuwählen. Die Tabelle tblStandorte ist ebenfalls mit der Tabelle tblLänder verknüpft.

Jetzt habe ich das Problem, dass wenn ein Produzent nicht das selbe Land (z. B. Deutschland) ausgewählt hat, wie das Land, das zu dem Standort (z. B. Berlin) gehört, der mit einer bestimmten Anlage verknüpft ist, mir diese Anlage nicht in einem anderen Formular/Abfrage angezeigt wird. Sobald ich aber dafür sorge, dass Standort der Anlage und Land des Produzenten, der mit der Anlage verknüpft ist, dasselbe Land haben, funktioniert es einwandfrei.

Meines Erachtens nach liegt das Problem in der Verknüpfung der Tabelle tblAnlagen, tblStandorte, tblLänder und tblProduzenten.

Wie kann ich erreichen, dass ein Produzent auch ein von einer Anlage abweichendes Land haben kann? Es ist nämlich so, dass der Hauptsitz eines Produzenten in einem anderen Land liegen kann, als dort wo er eine Anlage stehen hat. Muss ich für die Produzenten eine eigene Länder-Tabelle erstellen?

Würde mich über eure Hilfe sehr freuen?

ebs17

Flüchtiger Hinweis: Wenn man mit den Beziehungen im "Kreisverkehr" zwischen Tabellen fahren kann, kann das schnell kritisch werden und zu "Überraschungen" führen.
Mit freundlichem Glück Auf!

Eberhard

ChemSim

Also eine extra Tabelle für die Länder der Produzenten erstellen?

andyfau

Hallo,
man kann Tabellen mehrfach ins Beziehungsfenster nehmen und so den Kreisverkehr vermeiden.

Beste Grüße
Andreas
Beste Grüße
Andreas

PhilS

Zitat von: ChemSim am April 07, 2024, 17:05:20Jetzt habe ich das Problem, dass wenn ein Produzent nicht das selbe Land (z. B. Deutschland) ausgewählt hat, wie das Land, das zu dem Standort (z. B. Berlin) gehört, der mit einer bestimmten Anlage verknüpft ist, mir diese Anlage nicht in einem anderen Formular/Abfrage angezeigt wird. Sobald ich aber dafür sorge, dass Standort der Anlage und Land des Produzenten, der mit der Anlage verknüpft ist, dasselbe Land haben, funktioniert es einwandfrei.
Höchstwahrscheinlich hat dieses Problem bestenfalls mittelbar mit den Beziehungen der Tabellen zu tun.

Stattdessen würde ich primäre die Abfrage für das betroffene Formular unter die Lupe nehmen. Wahrscheinlich wurden in der Abfrage Joins zwischen den Tabellen erstellt, die dazu führen dass die Länderzuordnungen für beide gleich sein müssen. Möglicherweise macht Access das automatisch falsch. Du kannst diese falschen Joins aber einfach aus der Abfrage entfernen ohne die Beziehungen der Tabellen untereinander zu ändern.
Zitat von: ChemSim am April 07, 2024, 17:05:20Muss ich für die Produzenten eine eigene Länder-Tabelle erstellen?
Nein, definitiv nicht!
Innerhalb einer Abfrage kannst du die eine Ländertabelle mehrfach hinzufügen. Wenn du die Länderinformation zu verschiedenen Entitäten in einer Abfrage anzeigen willst, ist das zwingend erforderlich.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

ChemSim

Hallo PhilS,

ZitatWahrscheinlich wurden in der Abfrage Joins zwischen den Tabellen erstellt, die dazu führen dass die Länderzuordnungen für beide gleich sein müssen.

Danke für den Hinweis, in der Tat gab es eine Join zwischen der Tabelle tblProduzenten und tblLänder, die ich entfernt habe. Jetzt schein es zu funktionieren.

Gruß
Simon