【问题标题】:Adding dbFailOnError to CurrentDb.Execute fails to update table将 dbFailOnError 添加到 CurrentDb.Execute 无法更新表
【发布时间】: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 执行?
  • 省略更新日期是否有效?你有主键吗?

标签: mysql ms-access vba odbc


【解决方案1】:

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

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

DoCmd.SetWarnings True
CurrentDb.Execute strSQL, dbFailOnError 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多