Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Beziehungen zwischen Tabellen herstellen

Begonnen von Carolyn, Dezember 06, 2022, 10:21:17

⏪ vorheriges - nächstes ⏩

Carolyn

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
Sie dürfen in diesem Board keine Dateianhänge sehen.

Leider bekomme ich das aber nicht auf die Reihe, vielleicht auch deswegen, weil ich die Fehlermeldung nicht verstehe
Sie dürfen in diesem Board keine Dateianhänge sehen.


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
Sie dürfen in diesem Board keine Dateianhänge sehen.



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?

MzKlMu

#1
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 []
Gruß Klaus

Carolyn

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
Sie dürfen in diesem Board keine Dateianhänge sehen.



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.




MzKlMu

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.
Gruß Klaus

Beaker s.a.

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).
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)

MzKlMu

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.
Gruß Klaus

Beaker s.a.

Ich hatte es so verstanden, dass diese Nummer zu der Maschine
gehört, die von diesem Lieferanten an dieses Projekt geliefert
wurde.
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)

Carolyn

Ich glaube, dass ich das Thema nicht klar formuliert habe

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

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

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
Sie dürfen in diesem Board keine Dateianhänge sehen.


Wo muss ich was, wie ändern, damit es klappt.
(siehe oben die erhaltenen Meldungen)

Carolyn

HEUREKA - Ich hab die Lösung gefunden

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

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

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


Vielen Dank an alle, die hier helfen wollten.

MzKlMu

#9
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.
Gruß Klaus

Beaker s.a.

Hallo Carolyn,
Deine Anforderungen aus dem OP kannst du in der anliegenden
BeispielDb nachvollziehen.

gruss ekkehard
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)