将 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 strSQL 或 DoCmd.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 无法更新表的主要内容,如果未能解决你的问题,请参考以下文章