Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Problem mit Verküpfungen





Frage

Hallo habe eine Accessdatei mit ca. 10 Tabellen die miteinander verknüpft sind. Es gibt einen Haupttabelle in deren ich u.a. die Feldnamen Kunden-Nummer und Kundenname habe. Diese zwei Felder habe ich mit allen anderen Tabellen verküpft. Nun mein Problem. Wenn ich z.B. eine Kundennummer ändern möchte ohne den Firmennamen zu ändern kann ich diesen nicht speichern, da ja wie schon gesagt alle Tabellen miteinander verknüpft sind. Wie kann ich ohne die Bezeihungen alle aufzuheben die daten ändern. Jörg

Antwort 1 von Teerbaby

Das könnte daran liegen, dass du eine 1:1 Verknüpfung gemacht hast, d.h. für jeden Eintrag in der Haupttabelle muß 1 Eintrag in der verknüpften Tabelle existieren. Die Änderungen müssten also parallel in den verknüpften Tabellen vorgenommen werden.
Wie man das automatisch macht, kann ich dir im Moment auch nicht sagen.

Antwort 2 von greenline

Hallo Teerbaby,
vieln Dank für den Hinweis.

Kann mir jedmand sagen wie dies gehen kann? oder soltte ich eine andere Verknüpfung wie einen 1:1 machen.

Gruss Jörg

Antwort 3 von oliver V

Hallo Jörg,

das Problem dürfte nicht an der Verknüpfungsart liegen, sondern bei deiner Beziehung hast du sicherlich "Mit referentieller Integrität" den Haken gesetzt;
d.h. du kannst ein verknüpftes Feld der Haupttabelle nur dann ändern, wenn kein entsprechender Datensatz in der verknüpften Tabelle existiert, ebensowenig kannst du den kompletten Datensatz in der Haupttabelle löschen;
also nimm mal das Häckchen raus, müsste dann klappen.

Gruß
oliver



Antwort 4 von PotzBlitz

Hallo Jörg,

dass du eine Beziehung über die Kundennummer herstellst, kann ich noch verstehen. Aber gleichzeitig noch eine Beziehung über den Namen des Kunden? Das macht überhaupt keinen Sinn. Hier würde ich dir dringendst nahe legen, dass du die Beziehungen über den Kundennamen zwischen allen Tabellen entfernst. Die Kundennummer allein sollte eindeutig sein, wodurch problemlos eindeutige Beziehungen erstellt werden können. Dann sind auch alle Felder mit den Kundennamen in den Detailtabellen überflüssig, denn einmal in der Haupttabelle reicht völlig.

Wenn du an deinem Prinzip aber festhalten willst (hoffentlich nicht), dann musst du in den Eigenschaften der Beziehungen die referentielle Integrität aktivieren und dann die Aktualisierungsweitergabe.

Idealerweise wird als Primärschlüssel eine laufende Nummer vom Typ Autowert eingesetzt und nur darüber verknüpft. Die Datenfelder wie Kundennummer, Kundenname sind dann völlig unbelastet und können nach Lust und Laune geändert werden. Das ist auch eines der Prinzipien, an die ich mich strikt halte: Verwende nie Daten für systemeigene Aufgaben (z.B. Beziehungen über datentragende Felder), sondern trenne Daten von System. Dann kommst du auch nie in die Verlegenheit zu sagen: "Tut mir leid, Frau Schmidt, Sie dürfen nach Ihrer Heirat den Namen Ihres Mannes nicht annehmen. Die referentielle Integrität unserer Datenbank gestattet es mir nicht, Ihren Namen zu ändern." ;-)

Gruss
PotzBlitz

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: