运行时错误“3197”。 MS Access 2010和SQL Server 2008R2

问题描述:

我有一个在MS Access 2007-2010编写的应用程序,后端是一个SQL数据库。运行时错误“3197”。 MS Access 2010和SQL Server 2008R2

建立一个新的数据库之后,当我认为从SQL记录在访问报告,试图修改或进入一个运行时错误新的输入结果3197

特定的错误说: 这个纪录由另一个用户已被改变,因为你开始编辑

然后,我必须复制到剪贴板和删除更改选项,而保存记录显示为灰色。 点击删除更改带来的错误:“运行时错误‘3197’ Microsoft Access数据库引擎停止,因为您和另一个用户试图在同一时间更改相同的数据的过程”

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

我有构造相同的方式工作,没有问题的其他数据库。我在使用Access运行时检查了工作数据库上的sp_who2,并且对于“有问题”的数据库而言SUSPENDED的用户正在与此人睡觉。

我检查的权限,这两个数据库,并检查了权限的安全的用户 - >登录并没有看到任何东西,我可以标记为问题(也许别人可以吗?)。

不知道为什么发生这种情况,为什么数据库是SQL用户锁定,不会让Access用户更新相关记录。

任何人都可以解释一下这个问题?

谢谢。

+0

你压缩并修复和反编译MS Access数据库吗?你在SQL Server中使用任何“不寻常的”日期格式吗?你说其他Access数据库没问题,他们是否可以链接到导致问题的相同表?你有新的数据库和链接表的问题吗? – Fionnuala 2012-08-01 09:04:15

+0

新数据库与其他数据库具有相同的结构。我改变的唯一的领域是我做了更大的适合所有文本的几个变种。 你是什么意思的“不寻常的日期格式”?其他数据库正在使用相同的日期格式,没有任何问题。 当我在Access中检查一个对应于SQL Server中的位数据类型的框时,错误信息发生(从我测试到目前为止)。起初,该位字段为NULL,但即使我使用0填充该字段,错误仍然存​​在。 – mikimr 2012-08-01 12:28:09

+1

请问这是http://msgroups.net/microsoft.public.access.formscoding/datatype-bit-problem-with/76194帮帮我? – Fionnuala 2012-08-01 12:43:27

由于Remou评论,改变所有的位数据类型SMALLINT和0填充了空的伎俩。我不需要将1改为-1,因为我的字段处于初始状态(= 0)。

+0

太好了。很高兴它的工作。 – Fionnuala 2012-08-02 08:09:58

+1

谢谢,我有一个类似的问题 - 我有位字段是空的(不是0),这对我造成了同样的错误。 – enderland 2014-01-28 16:14:43

至于建议,我更新在已经从零位数据类型为0的字段中的数据,也改变了数据类型为int。这解决了问题。