【问题标题】:How to delete records from linked tables in vba如何从vba中的链接表中删除记录
【发布时间】:2014-09-29 15:10:08
【问题描述】:

从我的 2010 访问数据库中的本地表中删除 * 记录时我没有问题,但是当我遍历我的列表并点击链接表(本地数据库,这是一个 fe/be 设置)时,它失败了: 运行时错误“3131”:FROM 子句中的语法错误。代码:

    If sanityCheck2 = vbYes Then
        DoCmd.SetWarnings False
       'list the tables to purge here
        dalist = "tblLocal1 tblRemote-2 tblRemote-3"
        darray = Split(dalist, " ")
        For i = LBound(darray) To UBound(darray)
           DoCmd.OpenTable darray(i)
           DoCmd.RunSQL squirrel
        Next
        DoCmd.SetWarnings True

代码在 tblLocal1 上运行良好,只是在任何遥控器上都不行。

我可以在数据表中打开表格并删除记录没有问题,只是不能通过这里。

【问题讨论】:

  • 你能显示“squirrel”中的SQL命令吗?
  • 如果 SQL 命令中存在语法错误,请向我们展示此 SQL 命令!如果语法不可见,我们将无法修复语法错误。
  • 当您完成数组中的第一项 (tblLocal1) 时,您是否 100% 确定 tblRemote-2 正在按照您的想法执行?那是你的真实表名吗?当然,我们需要查看 SQL。
  • @paulstock squirrel 对于第一个抛出错误的表是:DELETE * FROM tblRemote-2 pretty vanilla....

标签: sql vba ms-access ms-access-2010


【解决方案1】:

我敢打赌,这会让您围绕表名构建的 SQL 感到窒息,其中包含 -。 SQL 会将DELETE * FROM tblRemote-2 WHERE ... 视为DELETE * FROM tblRemote - 2 WHERE ...(无意义的减法),除非您用方括号将表名括起来。将其更改为 DELETE * FROM [tblRemote-2] WHERE ... 应该没问题。

【讨论】:

    猜你喜欢
    • 2011-04-28
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多