从链接到 CACHE 的 MsAcces table 中删除时出现错误 3197

getting error 3197 when deleting from MsAcces table linked to CACHE

我有一个 MsAccess 数据库(Microsoft® Access® for Microsoft 365 MSO(版本 2201 内部版本 16.0.14827.20186)64 位),它通过 ODBC 驱动程序与 CACHE 链接。 它安装在我的硬盘上,所以没有其他用户可以打断任何东西。

我必须删除 table 中的记录。我正在通过过滤记录集执行此操作。

它工作正常,但现在我收到一个错误:“Microsoft Access 数据库引擎停止了进程,因为您和另一个用户正试图同时更改相同的数据。”

任何想法,我没有选择......

不太确定您在这里遇到的具体问题。特别是因为您无法手动删除它并且缺少一些信息,例如

  • 是同一个数据库的旧版本也 运行 通过 ODBC
  • 上述两种失败的情况都是出现上述错误。

但在大多数情况下,我通过检查我的代码解决了以下问题:

  • 打开在删除命令之前未关闭的记录集。
    Set rst = dbs.OpenRecordset(stringSQL)
    ...
    rst.close
    set rst = nothing
    
  • 打开的表单或子表单需要 saved/closed 才能执行删除命令
  • 使用正确类型的记录集(RecordsetTypeEnum)

当然这个列表并不完整,但这就是我能想到的 atm。