访问表单 SQL 链接表写入冲突



我花了两天时间研究并尝试解决访问表单编辑的问题。 我知道可能有类似的问题,但没有一个建议解决了我的问题。 另外,我的情况可能略有不同。

我使用的是 Access 2017,并使用与 sql Server 2017 上的链接表绑定的访问拆分窗体。 我有一个添加按钮,只需添加输入的记录并移动到新记录。 当我向窗体添加记录,然后尝试在拆分窗体的数据表视图中编辑它时,出现写入冲突错误。

我已经验证了我的表上有一个主键,并且没有空位字段。

需要注意的另一件事是,这在从SQL server 2014迁移到sql server 2017之后开始发生。

我读到的一件事,但由于它需要"剧烈"的更改而尚未尝试,那就是将数据库的兼容级别设置为较低的级别,例如SQL 2014。 但是,这将是最后的手段,并且只是为了验证错误的原因。

我已经尝试了此页面上适用于我的情况的所有内容:http://www.accessrepairnrecovery.com/blog/fix-ms-access-write-conflict-error

我还能尝试什么来解决这个问题? 我希望有人遇到过类似的事情。

首先,这个问题已经在堆栈溢出上回答了 100 多个时间。

接下来:您的链接与使用 SQL 服务器无关,因此建议可能无济于事。

使用访问和SQL服务器时的主要原因(作为解决方案一遍又一遍(是:

确保所有表都定义了 PK。

确保任何位字段在 sql 服务器上具有默认设置(通常为 0(

确保每个表都有一个时间戳字段。

这很重要,特别是如果您有任何浮动或"真实"数据类型列。默认情况下,Access 大小调整向导和 Access 迁移工具都会建议并将添加时间戳字段。

如果您错过了上述 3 个问题中的任何一个(在过去的 18 年里,几乎每篇关于使用 SQL 服务器的文章都在重复这些问题。

因此,您将确保检查了所有 3 个问题。 任何表更改后,您将重新链接访问客户端。

然后,您需要测试/检查是否可以直接从 access(在表视图中(使用链接表更改编辑数据。 如果可以直接编辑此类数据,那么您又回到了使用表单进行测试。如果表单仍然导致写入冲突,则在您链接到的文章中的建议将开始适用,但直到您解决并确保上述所有 3 个步骤都得到处理。

子窗体通常需要时间戳,当您有实数/浮动列时也是如此。由于此类计算机编号中的舍入错误,则两个记录之间的比较失败。添加时间戳列可以解决此问题,因为访问现在不必逐字段比较,而是将使用时间戳列(不要与日期时间列混淆(来确定记录是否已更改。因此,采用此功能甚至可以减少从客户端到服务器的网络颤动,并允许访问以确定服务器记录是否已更改,而不必求助于逐字段比较。

我最近遇到了同样的错误,结果证明我在数据表视图上有一个活动的排序。一旦我删除了排序,瞧,问题解决了!(没有什么比搬起石头砸自己的脚了。

最新更新