MS Access" Write Conflict"向记录源

时间:2018-04-25 15:52:53

标签: ms-access

我想在前言中说我没有任何真正的编程背景,我只是想在工作时更新现有的数据库。

我们有一个访问数据库,我想在现有表单中添加一个额外的Y / N复选框。表单更新SQL表。目前,记录源是一个SQL语句。

我可以转到SQL表,添加一个新字段并将其设置为Yes / No数据类型。表中还有其他“是/否”字段,新字段的默认设置与其他字段相同。接下来我将通过功能区中的外部数据更新链接表。我可以进入Access中的表并查看新字段 - 到目前为止,非常好。

接下来,转到表单设计视图和表单属性,转到记录源,更新SQL语句以包含新字段。 (我也尝试过这个通过查询构建器,结果相同。)从这里,我开始得到错误。

如果我返回表单视图并更改表单中的任何数据并点击下一个记录按钮或保存按钮,我会收到Write Conflict错误。 "自您开始编辑以来,其他用户已更改此记录..." '保存记录'按钮显示为灰色。我是唯一访问数据库或SQL服务器的人。

我已经尝试完成构建新按钮并将其链接到控制源中的新字段(这很好),但它没有任何区别。如果我进入编辑记录源并删除新字段,则一切都会再次起作用(但当然,新字段不在控制源列表中,因此不会链接到复选框)。

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:0)

问题原因的一个有力竞争者就是形式本身。

表单最有可能是使用特定查询设置为记录源。它并不是说这本质上是错误的,但它使得向源添加新列变得更加困难。

如果您只是将记录源更改为引用表本身而不是查询,那么问题可能会得到解决,如果实际上它是如何被引用的话。

如果Access尝试通过表单使用查询从表中提取数据,那么它本身会悲观地锁定有问题的表,使其无法修改。但是,您通常仍然可以通过查询本身修改表,但是您需要首先将列更改添加到该查询中。

我不太确定我是否在这里有意义,但这样的事情(对于一个名为“Table1”的表):

Form Property Sheet

理论上,如果表单是问题...那么如果您关闭它并尝试对表进行修改,那么更改应该在表单关闭时起作用。

答案 1 :(得分:0)

其他人为我修复了它,但据我所知,这是SQL和Access之间的通信问题。在SQL中设置空值的东西没有按照Access可以理解的方式设置 我们把问题缩小了。当新字段添加到表中时,您无法直接在表中更改任何信息,但您可以使用表单。 如果您将新字段添加到表单的记录源,则根本无法编辑任何信息。

感谢大家的投入。