PDA

Vollständige Version anzeigen : Anfügeabfrage und Tabelle mit referentieller Integrität


steve45king
23.10.2003, 21:35
Ich möchte Datensätze aus einer Tabelle ("Angebot Details") per Anfügeabfrage in eine andere Tabelle ("Auftrag Details") kopieren. Das Problem entsteht aber dann, wenn die Zieltabelle mit referentieller Integrität zu einer anderen Tabelle verknüpft ist:

Tabelle "Auftrag"Auftragsnr -----> 1:n ---> ref. Integr. + Aktualisierungsweitergabe + Löschweitergabe -----> Tabelle "Auftrag Details" Auftragsnr

dann kommt die Meldung:
Access kann nicht alle Datensätze anfügen, die von der Anfügeabfrage betroffen sind [....] 3 Datensätze wegen Schlüsselverletzungen


Dies, obwohl ich in der Tabelle "Auftrag" zunächst einen Datensatz erstelle, speichere, und via Anfügeabfrage die Auftragsnummer in die Tabelle "Auftrag Details" schreibe (ins Feld "Auftragsnr")
Somit gibt es in der Tabelle "Auftrag" beispielsweise einen Datensatz mit der Auftragsnummer "18", und in der Tabelle "Auftrag Details" gibt es im entsprechenden Feld auch die Auftragsnummer 18...

allerdings kommt es gar nicht soweit.... :-(

any Ideas?

Johnny Loser
24.10.2003, 06:22
Zum Verständnis:

a) Du hast n Datensätze Angebotsdetails (ohne AUNr)
b) Du erstellst einen Datensatz in der Tabelle Auftrag (mit AUNr)
c) Du fügst per Anfügeabfrage einen Datensatz in Auftragsdetails
d) Du fügt per Anfügeabfrage die Datensätze aus Angebotsdetails in Auftragsdetails an (ohne AUNr)

c) ist mir ein Rätsel...

Sinnvoller ist es, in der Angebotstabelle auch ein Feld Auftragsnummer zu haben, welches vor dem Anfügen an die Auftragsdetails mit der Auftragsnummer aktualisiert wird.

P.S.: Wäre es nicht sinnvoller, nur eine einzige Tabelle zu haben und den Status Angebot/Auftrag über ein Feld AuftragsStatus festzulegen?

steve45king
24.10.2003, 13:01
bin jetzt den Weg gegangen, dass ich einfach ein Status-Feld Angebot/Auftrag mache... ist wohl einfacher, und vor allem steht im Auftrag mehr oder weniger das gleiche wie im Angebot drinnen...

dennoch würde es mich schon interessieren, woher diese Schlüsselverletzung kommt

Gruß und Danke!

Johnny Loser
24.10.2003, 13:48
Wie ich es schon versucht hatte, zu erklären: Die Datensätze, die Du anfügen willst enthalten ja keine Auftragsnummer (wenn ich Dich richtig verstanden habe...), somit können sie auch nicht als neue Datensätze angefügt werden, da ja schließlich ohne Auftragsnummer keine Referenz zur Auftragstabelle aufgebait werden kann.