Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: ironpete am Dezember 14, 2015, 13:51:41

Titel: Löschen aus zwei Tabellen
Beitrag von: ironpete am Dezember 14, 2015, 13:51:41
Servus,

ich will einen DS aus zwei Tabellen löschen, der in beiden Tabellen vorkommt. Also quasi Duplikate entfernen. Es gibt zwei Kriterien.

DELETE A.*, B.*, A.OrderNo, A.OrderLineNo
FROM tbl_CustServ AS B, tbl_ICSS_Potential_hist AS A
WHERE (((A.OrderNo)=[B].[Supply Ord]) AND ((A.OrderLineNo)=[B].[LineNo]));


Die Fehlermeldung lautet "Löschen aus angegebenen Tabellen nicht möglich."

Die Abfrage an sich funktioniert, da in der Datenblattansicht ein DS angezeigt wird. Das Löschen geht scheinbar nicht. Ich kann den Datensatz einzeln zuerst aus A, dann aus B löschen.
Ich dachte daher schon, ich könnte einfach zwei Abfragen daraus machen, aber nach dem Löschen aus A, gibt es ja kein Duplikat mehr, das ich in B noch löschen könnte...

Welchen Fehler sehe ich nicht?
Titel: Re: Löschen aus zwei Tabellen
Beitrag von: MaggieMay am Dezember 14, 2015, 15:29:17
Hallo,

du kannst tatsächlich nicht aus zwei Abfragen bzw. Tabellen gleichzeitig löschen. Da musst du dir wohl eine Hilfstabelle erstellen, in welche du zunächst die zu löschenden Satz-IDs speicherst.
Titel: Re: Löschen aus zwei Tabellen
Beitrag von: ironpete am Dezember 14, 2015, 15:31:07
Oh, tatsächlich...? Kann man da vielleicht auch was mit recordset machen?
Titel: Re: Löschen aus zwei Tabellen
Beitrag von: MaggieMay am Dezember 14, 2015, 15:58:10
Wenn du das per VBA lösen willst, könntest du ein Recordset mit der Auswahlabfrage öffnen und in einer Schleife über die Datensätze die entsprechenden Datensätze in den beiden Tabellen per SQL und Execute löschen. Das Recordset würde ich sicherheitshalber als Snapshot öffnen.