Neuigkeiten:

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

Mobiles Hauptmenü

Löschen aus zwei Tabellen

Begonnen von ironpete, Dezember 14, 2015, 13:51:41

⏪ vorheriges - nächstes ⏩

ironpete

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?

MaggieMay

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.
Freundliche Grüße
MaggieMay

ironpete

Oh, tatsächlich...? Kann man da vielleicht auch was mit recordset machen?

MaggieMay

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.
Freundliche Grüße
MaggieMay