2009-07-15 17 views
1

Ich habe die unten Abfrage, die Daten aus mehreren TabellenLöschen von Daten aus mehreren Tabelle

seine nicht funktioniert

mir bitte helfen, löschen wird:

DoCmd.RunSQL ("delete tblTesting,tblCodes,tblContract,tblScheduled,tblAbsense,tblClock from tblTesting,tblCodes,tblContract,tblScheduled,tblAbsense,tblClock where tblTesting.TestId = " & lstResults.Column(1) & " And tblTesting.Empid = " & Me.txtEmpIdSearch.Value & " And (tblTesting.Empid= tblCodes.EmpId Or tblTesting.Empid= tblContract.EmpId Or tblTesting.Empid= tblScheduled.EmpId Or tblTesting.Empid= tblAbsense.EmpId Or tblTesting.Empid= tblClock.EmpId) ") 

Antwort

5

Ihre SQL-Anweisung ist falsch. Sie können auf diese Weise nicht aus mehreren Tabellen löschen. Siehe here wie es gemacht wird, Tabelle für Tabelle.

+1

Und vergessen Sie nicht, die Tabelle in der richtigen Reihenfolge zu löschen. Die Tabelle "Parent" muss zuletzt gelöscht werden, wenn Fremdschlüsselbeziehungen aktiv sind. – HLGEM

0

Sie müssen immer eine Tabelle gleichzeitig ausführen, aber abgesehen davon, dass Sie nicht aus mehreren Tabellen auf diese Weise löschen können, sollten Sie keine Spalten in der Löschklausel angeben - delete behandelt immer ganze Zeilen.

1

Ihre Löschungen müssen jeweils eine Tabelle sein - so funktioniert SQL. Einige Tools können Sie mehrere SQL-Anweisungen zusammen in einem String setzen:

"delete table1 where RowId=123; delete table2 where RowID=456; delete table3 where RowID=789;" 

nur verifiziert, dass diese Methode funktioniert NICHT Arbeit in Access. Sie sehen sich also eine separate DoCmd.RunSQL-Zeile für jede Tabelle an.

Es sei denn, dies sind natürlich alle übergeordneten/untergeordneten Tabellen und Sie können kaskadierende Löschungen aktivieren. Dann einfach aus dem Elterntisch löschen und die Magie genießen.

Verwandte Themen