Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Carolyn am Dezember 06, 2022, 10:21:17

Titel: Beziehungen zwischen Tabellen herstellen
Beitrag von: Carolyn am Dezember 06, 2022, 10:21:17
Hallo zusammen

habe je eine Tabelle für die Kundeninformationen und den Lieferanten die in der Tabelle Projekte zusammenlaufen

Jeder Kunde kann mehrere Projekte haben mit verschiedenen Lieferanten
und jeder Lieferant mehre Projekte bei verschiedenen Kunden

Hierzu dachte ich mir, wäre es gut, wenn ich der Tabelle Projekte eine Beziehung zur Kunden bzw. Lieferanten Tabelle zuweise
Tabellen.jpg

Leider bekomme ich das aber nicht auf die Reihe, vielleicht auch deswegen, weil ich die Fehlermeldung nicht verstehe
FM Datentypen.jpg


Zur Info

in der Tabelle Projekte wähle ich die Kommissionsnummer über ein Kombifeld aus, ebenso wie den Kunden
Ist das vielleicht damit gemeint "Datentyp"?


oder diese Meldung
Referenzielle_Integrität.jpg



Ich würde halt gern in der Tabelle Lieferant dieses + vor der Zeile haben, über das ich sehen kann, welche Projekte alle diesem Lieferanten zugeordnet sind
Ebenso in der Tabelle Kunden, welche Projekte diesem zugeordnet sind

So wie es halt ist, wenn diese 1:n Beziehung besteht


Kann mir jemand beim Lösen des Knotens helfen?
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: MzKlMu am Dezember 06, 2022, 11:05:13
Hallo,
Deine Beschreiebung ist etwas verwirrend.
Wenn ein Kunde Projekte hat, wieso hat ein Lieferant auch Projekte ?
Die Fehlermeldung sind eindeutig, was verstehst Du daran nicht ?
Beziehungen laufen immer über die ID und in den abhängigen TAbellen ein Fremdschlüsselfeld des gleichen Datentyps. Daher sollte man die ID's nicht einfach ID nennen, sondern mit Bezug zur Tabelle (z.B. KundenID).
Was steht im Feld "Lieferant" und was im Feld "Lieferant Ref" ?

Dringender Rat:
Verzichte in Feldnamen unbeding auf Leer und Sonderzeichen. Ein NoGo sind Klammern im Feldnamen. Diese müssen in ein [] Klammerpaar eingeschlossen werden. Was eine Fehlerquelle ist und zusätzlichen Aufwand erfordert.
Alle Feldnamen mit solchen Sonderzeichen müssen bei Verwendung in Ausdrücken, SQL und VBA immer in ein []
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: Carolyn am Dezember 06, 2022, 12:41:45
Zitat von: MzKlMu am Dezember 06, 2022, 11:05:13Hallo,
Deine Beschreiebung ist etwas verwirrend.
Wenn ein Kunde Projekte hat, wieso hat ein Lieferant auch Projekte ?


Das "Projekt" bildet die Verbindung von unserer Zuordnung "Kommission" zum Kunden an den wir geliefert haben und der Teile vom Lieferanten.

Lieferant A hat zB beim Kunden 1 zu unserem Projekt abc eine Maschine und beim Projekt bcd eine andere geliefert.
Vom Lieferant B haben wir ebenfalls beim Kunden 1 eine Maschine für das Projekt efg

Beim Kunden 1 sind demnach 3 Projekte von uns, welche die Maschinen/Teile von 2 Lieferanten beinhalten

Kunde 1
- Projekt abc
-- Lieferant A
- Projekt bcd
-- Lieferant A
- Projekt efg
-- Lieferant B

Lieferant A
- Kunde 1
-- Projekt abc
-- Projekt bcd

Lieferant B
- Kunde 1
-- Projekt efg


Hilft das zum besseren Verständnis, was ich damit meine?


Ich hätte halt gern in der Tabelle Lieferanten diese automatische Übersicht bei welchen Kunden dessen Anlagen stehen
Ebenso möchte ich in der Tabelle Kunden sehen können, welche Anlagen von welchem Lieferant bei welchem Kunden stehen.

Daher war ich der Meinung das über Beziehungen herstellen zu können
Vorstellung.jpg



Zitat von: MzKlMu am Dezember 06, 2022, 11:05:13Die Fehlermeldung sind eindeutig, was verstehst Du daran nicht ?
Beziehungen laufen immer über die ID und in den abhängigen TAbellen ein Fremdschlüsselfeld des gleichen Datentyps.
<< Danke für die Übersetzung

Zitat von: MzKlMu am Dezember 06, 2022, 11:05:13Daher sollte man die ID's nicht einfach ID nennen, sondern mit Bezug zur Tabelle (z.B. KundenID).

Das ist ein sehr sinnvoller Hinweis, Danke. Werde das demnächst so umsetzen


Zitat von: MzKlMu am Dezember 06, 2022, 11:05:13Was steht im Feld "Lieferant" und was im Feld "Lieferant Ref" ?

Im Feld Lieferant steht der Name des Lieferanten
Im Feld Lieferant Ref steht seine Referenz, wie z.B. eine Seriennummer

Zitat von: MzKlMu am Dezember 06, 2022, 11:05:13Dringender Rat:
Verzichte in Feldnamen unbeding auf Leer und Sonderzeichen. Ein NoGo sind Klammern im Feldnamen. Klammerpaar eingeschlossen werden. Was eine Fehlerquelle ist und zusätzlichen Aufwand erfordert.
Alle Feldnamen mit solchen Sonderzeichen müssen bei Verwendung in Ausdrücken, SQL und VBA immer in ein []

Herzlichen Dank für den Rat - da das meine erste Datenbank ist, fehlt mir solches Wissen noch. Ich werde es anpassen.



Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: MzKlMu am Dezember 06, 2022, 13:53:44
Hallo,
Du brauchst noch eine weitere Tabelle in der die Projekte mit den Kunden und den Lieferanten verbunden werden (über Schlüsselfelder).
ZitatIm Feld Lieferant steht der Name des Lieferanten
Im Feld Lieferant Ref steht seine Referenz, wie z.B. eine Seriennummer
Nein. das Feld Lieferant wird nicht benötigt und LieferantRef ist die ID des Lieferanten nicht eine Seriennummer oder ähnliches.
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: Beaker s.a. am Dezember 06, 2022, 16:42:51
ZitatLieferantRef ist die ID des Lieferanten nicht eine Seriennummer oder ähnliches.
Er wird wohl beides brauchen. Wobei die Lief-ID fehlt (!für den OP, - das FK-Feld).
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: MzKlMu am Dezember 06, 2022, 17:01:16
Hallo,
ZitatEr wird wohl beides brauchen.
Aber doch nicht in der Projektetabelle. Und eine Seriennummer für einen Lieferanten scheint mir auch nicht ganz sinnvoll zu sein. Eher eine Lieferantennummer.
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: Beaker s.a. am Dezember 06, 2022, 17:17:07
Ich hatte es so verstanden, dass diese Nummer zu der Maschine
gehört, die von diesem Lieferanten an dieses Projekt geliefert
wurde.
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: Carolyn am Dezember 09, 2022, 09:11:13
Ich glaube, dass ich das Thema nicht klar formuliert habe

Durch die erstellten Beziehungen zwischen den Tabellen, werden diese strukturiert zusammengefasst

BeziehungDSzuProjekt.jpg
Zusammenfassund.jpg

Eine solche Beziehung würde ich auch gerne zwischen der Haupttabelle Projekte und den dazugehörigen Tabellen tblKunde und tbl Lieferant herstellen, weiß aber nicht wie.

Gewünschter Beziehungstyp
gewuenschter_Beziehungstyp.jpg


Wo muss ich was, wie ändern, damit es klappt.
(siehe oben die erhaltenen Meldungen)
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: Carolyn am Dezember 09, 2022, 09:28:40
HEUREKA - Ich hab die Lösung gefunden

Nach zig Anläufen wurde mein Wunsch durch folgendes Beziehungsverhältnis erfüllt

Loesung.jpg

Wichtig dabei ist, das kein Haken bei "Mit referentieller Integrität" gesetzt werden darf.


Vielen Dank an alle, die hier helfen wollten.
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: MzKlMu am Dezember 09, 2022, 09:59:17
Hallo
wenn keine refentielle Integrität gesetzt werden kann, so ist das ein Fehler. RI ist in einer Datenbank unerlässlich. Auf RI kann und darf nicht verzichtet werden. Auch die 1:1 Beziehung kann so nicht stimmen. Du kannst nicht die ID des Kunden mit der ID des Projekts verbinden, das macht keinen Sinn.
Bitte zeige mal ein Bild des Beziehungsfensters auf dem man alle Tabellen mit allen Feldern sieht, oder lade die DB hier hoch.
So jedenfalls ist das völlig falsch.
Titel: Re: Beziehungen zwischen Tabellen herstellen
Beitrag von: Beaker s.a. am Dezember 09, 2022, 17:05:49
Hallo Carolyn,
Deine Anforderungen aus dem OP kannst du in der anliegenden
BeispielDb nachvollziehen.

gruss ekkehard