我有以下查询,它将从多个表中删除数据
它不起作用
请帮帮我:
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 ) ")
答案 0 :(得分:5)
您的SQL语句错误。您不能以这种方式从多个表中删除。请逐页查看here如何完成。
答案 1 :(得分:1)
您的删除必须一次只能是一个表 - 这就是SQL的工作方式。有些工具可以让你将几个SQL语句放在一个字符串中:
"delete table1 where RowId=123; delete table2 where RowID=456; delete table3 where RowID=789;"
刚刚验证此方法
当然,除非这些都是父/子表,否则您可以启用级联删除。然后只需从父表中删除并享受魔法。
答案 2 :(得分:0)
您需要一次只执行一个表,但除了无法从多个表中删除这一事实外,您不应在delete子句中指定列 - delete始终处理整行。