Ich habe hier schon einige Lösungen gefunden, aber was mir fehlt, ist
die Erklärung, warum die Abfrage
DELETE tblOrders.*, tblOrderDetails.ID
FROM tblOrders LEFT JOIN tblOrderDetails ON
tblOrders.ID=tblOrderDetails.ID
WHERE (((tblOrderDetails.ID) Is Null));
obige Fehlermeldung ergibt (Ich möchte ja auf meine alten Tage immer
noch was lernen....)
Danke für die Tips!
Gruss
Franz
----
> DELETE tblOrders.*, tblOrderDetails.ID
wie würde denn tblOrderDetails aussehen, wenn keine ID mehr eingetragen
wäre....?
Mit Löschweitergabe in der Verknüpfung zwischen tblOrders und
tblOrderDetails würde eine Löschung in tblOrders auch die entsprechenden
Datensätze in tblOrderDetails mit gelöscht.
HTH
Thomas
--
"Access? Damit arbeite ich nicht. Das ist doch nur ein abgespecktes Excel."
Franz:
> Ich habe hier schon einige Lösungen gefunden, aber was
> mir fehlt, ist die Erklärung, warum die Abfrage
>
> DELETE tblOrders.*, tblOrderDetails.ID
> FROM tblOrders LEFT JOIN tblOrderDetails ON
> tblOrders.ID=tblOrderDetails.ID
> WHERE (((tblOrderDetails.ID) Is Null));
>
> obige Fehlermeldung ergibt (Ich möchte ja auf meine alten
> Tage immer noch was lernen....)
Das liegt an Deinem Left Join.
Daß Du nach DELETE Felder angibst, läßt auch noch ein
Mißverständnis befürchten: Du kannst damit nur ganze
Datensätze löschen, keine einzelnen Felder.
Generell ist es am geschicktesten, immer aus Tabellen
und nicht aus Abfrageausdrücken zu löschen, also
DELETE FROM Tabelle WHERE Bedingung
Im Fall von Beziehungen wird von unten nach oben gelöscht,
also z. B.
DELETE FROM Bestellung WHERE fiKunde IN (1,2,3)
DELETE FROM Kunden WHERE idKunde IN (1,2,3)
Dabei unterstellt, fiKunde sei der Fremdschlüssel in den
Bestellungen und idKunde der Primärschlüssel in Kunden.
Löschungen aus Tabellen sind immer möglich, und das
Vorgehen hat drei weitere Vorteile:
Man braucht keine Löschweitergabe, man begreift die
Abhängigkeitsstrukturen in der eigenen DB, man lernt
SQL bei der Formulierung manchmal ausgefuchster
Unterabfragen für die Löschbedingungen.
Gib mal in der OH folgenden Suchstring ein: "Wann können
Daten aus einer Abfrage aktualisiert werden", dann erhältst
Du weitere Informationen.
Gruß aus Mainz
Michael