将 dbFailOnError 添加到 CurrentDb.Execute 无法更新表

Posted

技术标签:

【中文标题】将 dbFailOnError 添加到 CurrentDb.Execute 无法更新表【英文标题】:Adding dbFailOnError to CurrentDb.Execute fails to update table 【发布时间】:2012-12-19 00:29:45 【问题描述】:

潜伏已久,第一次发帖。

我有一个通过 5.1 ODBC 驱动程序连接到 Access 2010 的 mysql 表。我正在尝试更新 mySQL 表并奇怪地在 CurrentDb.Execute strSQL 的末尾添加 dbFailOnError 可防止表更新但不会引发任何错误。我的 VBA 编辑器设置为中断所有错误。例程中的所有错误处理都已注释以供测试。

如果我使用 CurrentDb.Execute strSQLDoCmd.RunSQL strSQL,表会更新。另外,mySQL 表有一个索引。

SQL 字符串:

strSQL = "UPDATE clients
SET [DateLastAccessed] = " & lngDateAccessed & ",
[CountAccess] = " & intCountAccessed & "
WHERE [SerialHDD] = '" & strGetHDD & "' ;"

非常感谢任何帮助。

【问题讨论】:

当您在 VBA 中构建 SQL 语句时,为什么不通过 ADO 而不是通过 DAO 执行? 省略更新日期是否有效?你有主键吗? 【参考方案1】:

CurrentDb.Execute strSQL 末尾添加dbFailOnError 可防止表更新但不会引发任何错误

如果SetWarnings 已关闭,则可能无法在没有可见错误的情况下更新。检查在执行更新语句之前立即打开 SetWarnings 时是否得到不同的结果。

DoCmd.SetWarnings True
CurrentDb.Execute strSQL, dbFailOnError 

【讨论】:

以上是关于将 dbFailOnError 添加到 CurrentDb.Execute 无法更新表的主要内容,如果未能解决你的问题,请参考以下文章

如何从一个表中复制一个记录集并添加到另一个表中?

重试flyway失败的迁移

向主线程调用方法的结果

将 INI 文件中的值加载到组合框

jQuery:延迟替换 div 的 innerHTML?

Vue动态组件