Moin zusammen,
mein Problem ist, dass ich in Tabelle 1 alle Datensätze habe und in Tabelle 2 eine Teil aus Tabelle 1.
Nun möchte ich, dass nur die Datensätze in Tabelle 1 gelöscht werden, die in Tabelle 2 ein bestimmtes Kriterium erfüllen.
Habe bereits ein ähnliches Thema hier gefunden: http://www.access-o-mania.de/forum/index.php?topic=3133.0 (http://www.access-o-mania.de/forum/index.php?topic=3133.0) , allerdings ohne ein Selektion in Tabelle 2.
Zur besseren Veranschaulichung, habe ich ein screenshot angehängt.
Kann mir jemand bei der Lösung dieses Problems helfen?
Vielen Dank im Voraus
Andreas
[Anhang gelöscht durch Administrator]
Hallo,
mit diesen Beziehungen wirst Du nichts löschen können.
Du solltest einen einzelnen Primärschlüssel haben. Referentielle Integrität einstellen mit Löschweitergabe.
Wenn dann der Hauptdatensatz gelöscht wird, sind auch die Datensätze der n-Seite weg.
Warum hast Du keine RI eingestellt?
Warum einen zusammengesetzten PK?
Wozu die Beziehung über AN Nachtexpress?
Und die grundsätzliche Frage, warum überhaupt einen DS löschen?
Moin Franz,
vielen Dank für die schnelle Hilfe.
Wie Du ganz sicher bemerkt hast, bin ich erweiteter Anfänger auf dem Gebiet Access, aber ich lerne...:-)
Auf die Idee dies über eine Beziehung bin ich gar nicht gekommen, Danke.
Was meinst Du mit "zusammengesetzter PK" ?
Beziehung AN Nachtexpress ist in der Tat völlig überflüssig.
Nun zu Deiner letzten Frage.
In Tabelle 1 befinden sich alle gemachten Fehler. Diese werden einem bestimmten Gebiet ( AN Nachtexpress ) zugeordnet. Nun kann es vorkommen, dass bei einigen Fehlern der jeweilige Gebietsverantwortliche aber keine Schuld an diesem Fehler trägt, so dass genau dieser wieder gelöscht werden muss.
Ich hoffe, dass ich mich verständlich genug ausgedrückt habe.
Viele Grüße
Andreas
Zitatin Tabelle 1 alle Datensätze habe und in Tabelle 2 eine Teil aus Tabelle 1
Die Frage sollte eher lauten: Warum gibt es eine Tabelle 2 mit gleichen Datensätzen?
Da wären sicher einige Abläufe diskutabel.
Ansonsten: Zum Löschen braucht man gar keine Beziehungen. Letztere sollten aber dem Löschen auch nicht entgegenstehen.
Technik:
DELETE FROM Tabelle1 T1
WHERE EXISTS
(SELECT Null FROM Tabelle2 T2
WHERE T2.loeschen = True
AND T2.Kategorie = T1.Kategorie
AND T2.Scann_Datum = T1.Scann_Datum
AND T2.ÜP = T1.ÜP)MfGA
ebs