我有一个链接到Access 2010前端的SQL Server 2008数据库。
有些列的varchar
长度各不相同,从50到MAX
。没有默认值,它们可以为null。
最近,任何长于255的列都会导致写入冲突错误:
自您开始编辑以来,其他用户已更改此记录。如果您保存记录,您将...
我可以在同一行更新其他数据,包括varchar
数据,没有任何问题也没有错误。
当我尝试直接从表中更新列时,会发生此错误。如果我通过VBA或表单以编程方式更新表,也会发生这种情况。
看起来这样是因为SQL Server中的列是NULL
,但我之前从未见过varchar
列。这是一个"功能"或者你只需要解决的事情?它开始发生,无论如何,这也令人困惑。
答案 0 :(得分:1)
Office Access链接表中可更新性问题的主要原因是Office Access无法验证服务器上的数据是否与正在更新的动态集检索到的内容匹配。如果Office Access无法执行此验证,则会假定服务器行已被其他用户修改或删除,并且会中止更新。
Office Access无法可靠地检查匹配值的数据类型。这些包括大对象类型,例如text,ntext,image和varchar(max)(在您的情况下),nvarchar(max)和varbinary(max)类型。
根据您的情况,我相信访问表单可能会绑定到数据&在SQL Server的记录和表上产生大量锁,这些锁可以防止更新表。所以尝试纠正绑定到数据并显示这些可更新性错误并使其与未绑定数据一起使用的Access表单,这允许您可以在不在数据库服务器上创建锁的情况下向用户读取和更新未绑定的数据。