sql - 如何从vba中的链接表中删除记录

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

从 2010 年 Access 数据库中的本地表中删除 * 记录时,我没有任何问题,但是当我循环遍历列表并点击链接表(本地数据库,这是一个 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 上运行良好,但在任何 Remote 上都运行不佳。

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

最佳答案

我敢打赌,您围绕其中包含 - 的表名构建的 SQL 会令人窒息。 SQL 会将 DELETE * FROM tblRemote-2 WHERE ... 视为 DELETE * FROM tblRemote - 2 WHERE ... (无意义的减法),除非您包装表名带方括号。将其更改为 DELETE * FROM [tblRemote-2] WHERE ... 就可以了。

关于sql - 如何从vba中的链接表中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26103104/

相关文章:

ms-access - 如何从 MS Access 数据库获取表名?

excel - 我的 VBA 代码可以逐行运行,但运行时不行

excel - VBA - 另存为后工作簿的对象会发生什么?

c# - 带有 SqlConnection 的后台工作程序

sql - 绕过 OPENQUERY 失败使用 EXECUTE 的字符限制

在 Excel 中使用 Solver 进行 VBA 宏优化不返回最佳变量

C# 以多种形式使用 MS Access 数据库

ms-access - 如何反编译和重新编译数据库应用程序?

sql - Postgresql句子性能

sql - oracle join中如何根据列值仅获取一条记录