ms-access-2010 - 运行时错误 '3197' 。 MS Access 2010 和 SQL Server 2008R2

标签 ms-access-2010 user-permissions sql-server-2008r2-express

我有一个用 MS Access 2007-2010 编写的应用程序,后端是 SQL 数据库。

构建新数据库后,当我在 Access 报告中查看 SQL 记录时,尝试编辑或输入新的输入结果,但出现运行时错误 3197。

具体错误如下: 自您开始编辑以来,此记录已被其他用户更改

然后我有“复制到剪贴板”和“删除更改”选项,而“保存记录”则呈灰色。 单击“删除更改”会出现错误:

“运行时错误‘3197’ Microsoft Access 数据库引擎停止了该进程,因为您和另一个用户正在尝试同时更改相同的数据。”

然后,我查看了 SQL 并使用 EXEC sp_who2 'Active' 查询数据库,我可以看到我用于 SQL 的用户名是 RUNNABLE,而 Access 应用程序使用的用户(在 Access VBA 中编码)是 SUSPENDED(它暂停的命令是 SELECT)。

我还有其他以相同方式构建的数据库,并且没有任何问题。当工作数据库与 Access 一起运行时,我检查了工作数据库上的 sp_who2,并且因“有问题的”数据库而被暂停的用户正在使用此数据库。

我已经检查了两个数据库的权限,并检查了安全-->登录中用户的权限,但没有看到任何我可以标记为问题的内容(也许其他人可以?)。

不确定为什么会发生这种情况以及为什么数据库被 SQL 用户锁定并且不允许 Access 用户更新相关记录。

有人能解释一下这个问题吗?

谢谢。

最佳答案

正如 Remou 所评论的,将所有位数据类型更改为smallint,并在 Null 的地方填充 0。我不需要将 1 更改为 -1,因为我的字段处于未勾选的初始状态 (=0)。

关于ms-access-2010 - 运行时错误 '3197' 。 MS Access 2010 和 SQL Server 2008R2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11753862/

相关文章:

mysql - 使用 MAX() 和 SUM() 聚合的 SQL 查询

database - Access VBA : Error 2501 - The OpenQuery action was cancelled

c# - 运行程序的条件

java - 经过身份验证的用户的角色是什么 - Java

php - 公共(public)表引用,Int 还是 String 标识符?

c# - 在 C# 中打开/关闭 SqlConnection 的最佳方法是什么

ms-access - rs.MoveFirst 是否隐含在 Access VBA 中?

database - 带有 MS Access 2010 数据库的 Delphi FireDAC。为什么它将 ACE 转换为 Jet?