【问题标题】:Delete data from multiple table从多个表中删除数据
【发布时间】:2009-07-15 13:40:29
【问题描述】:

我有以下查询,它将从多个表中删除数据

它不工作

请帮帮我:

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

【问题讨论】:

    标签: sql ms-access vba syntax


    【解决方案1】:

    您的 SQL 语句错误。您不能以这种方式从多个表中删除。请逐表查看here 是如何完成的。

    【讨论】:

    • 记得按正确的顺序删除表格。当外键关系生效时,必须从最后一个删除父表。
    【解决方案2】:

    您必须一次删除一个表 - 这正是 SQL 的工作原理。一些工具可以让你将多个 SQL 语句放在一个字符串中:

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

    刚刚验证此方法在 Access 中工作。因此,您正在为每个表查看单独的 DoCmd.RunSQL 行。

    当然,除非这些都是父/子表,并且您可以打开级联删除。然后从父表中删除并享受魔法。

    【讨论】:

      【解决方案3】:

      您需要一次处理一个表,但除了不能以这种方式从多个表中删除之外,您不应该在 delete 子句中指定列 - 删除总是处理整行。

      【讨论】:

        猜你喜欢
        • 2017-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多