vba - 执行查询 DoCmd.RunSQL 时出现错误 3340 查询 ' ' 已损坏

标签 vba ms-access

自从安装 the windows update for Office 2010 resolving KB 4484127我在执行包含 WHERE 子句的查询时遇到错误。

例如执行此查询:

DoCmd.RunSQL "update users set uname= 'bob' where usercode=1"

导致此错误:

Error number = 3340 Query ' ' is corrupt

update in question目前仍然安装:

Screenshot showing Microsoft Office 2010 Service Pack 2 update 448127

如何成功运行查询?我应该卸载此更新吗?

最佳答案

摘要

这是一个known bug由 2019 年 11 月 12 日发布的 Office 更新引起。该错误影响 Microsoft 目前支持的所有 Access 版本(从 Access 2010 到 365)。

此错误已修复。

  • 如果您使用 C2R(即点即用)版本的 Office,use "Update now" :
    • Access 2010 C2R:在 Build 7243.5000 中修复
    • Access 2013 C2R:在 Build 5197.1000 中修复
    • Access 2016 C2R:已在内部版本 12130.20390 中修复
    • Access 2019 (v1910):已在内部版本 12130.20390 中修复
    • Access 2019(批量许可):已在内部版本 10353.20037 中修复
    • Office 365 每月 channel :已在内部版本 12130.20390 中修复
    • Office 365 半年版:在内部版本 11328.20480 中修复
    • Office 365 半年延期:在内部版本 10730.20422 中修复
    • Office 365 半年目标:在内部版本 11929.20494 中修复
  • 如果您使用 MSI 版本的 Office,请安装与您的 Office 版本匹配的更新。所有这些补丁均已在 Microsoft Update 上发布,因此 installing all pending Windows Updates应该足够了:
<小时/>

示例

这是一个最小的重现示例:

  1. 创建新的 Access 数据库。
  2. 使用默认 ID 字段和长整型字段“myint”创建一个新的空表“Table1”。
  3. 在 VBA 编辑器的立即窗口中执行以下代码:

    CurrentDb.执行“UPDATE Table1 SET myint = 1 WHERE myint = 1”

预期结果:语句成功完成。

实际结果安装了其中一个有问题的更新:发生运行时错误 3340(“查询 '' 已损坏”)。

<小时/>

相关链接:

关于vba - 执行查询 DoCmd.RunSQL 时出现错误 3340 查询 ' ' 已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58832269/

相关文章:

ms-access - 如何让键盘 'Enter'触发Access表单上的按钮按下?

mysql - 如何 Access MS Access *.adp 文件中的 SQL 数据库?

python - 文件未发布

excel - 填充数组以进行 IRR 计算

vba - 结束如果没有阻止如果错误VBA

excel - 删除通过 Excel VBA 生成的 Outlook 2010 邮件中的签名

winapi - Excel - Windows 7 任务栏进度

ms-access - 使用 DoCmd.SetParameter 的问题

c# - 为什么 "SELECT * FROM user"会抛出语法错误?

如果至少一个单元格不低于 2 个字符,VBA 代码将不起作用