2009-07-15 9 views
1

私はデータを削除

そのが

を動作していない複数のテーブルからデータを削除します以下のクエリを持っている私を助けてください:

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) ") 

答えて

5

あなたのSQLステートメントが間違っています。そのように複数のテーブルから削除することはできません。それがどのように行われるか、テーブルごとにhereを参照してください。

+1

テーブルの削除を正しい順序で実行することを忘れないでください。外部キーの関係が有効な場合、親テーブルは最後から削除する必要があります。 – HLGEM

0

一度に1つのテーブルを作成する必要がありますが、複数のテーブルから削除することはできません。削除句には列を指定しないでください。deleteは常に行全体を処理します。

1

削除は、一度に1つのテーブルにする必要があります。これはSQLの動作方法です。いくつかのツールを使用すると、文字列に一緒にいくつかのSQL文を置くようになる:

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

はちょうどこの方法は、Accessでませ仕事をしていることを確認しました。したがって、各テーブルの別々のDoCmd.RunSQL行が表示されます。

これらはすべて親/子テーブルでない限り、カスケード削除を有効にすることはできません。親テーブルから削除して、魔法を楽しんでください。

関連する問題