ms-access - 将新字段添加到记录源时,MS Access“写入冲突”错误
问题描述
我想先说我没有任何真正的编程背景,我只是想在工作中更新现有的数据库。
我们有一个访问数据库,我想在现有表单中添加一个额外的 Y/N 复选框。该表单更新一个 SQL 表。目前记录源是一条SQL语句。
我可以转到 SQL 表,添加一个新字段并将其设为 Yes/No 数据类型。表中还有其他“是/否”字段,新字段的默认设置与其他字段相同。接下来,我将通过功能区中的外部数据更新链接表。我可以进入 Access 中的表格并查看新字段 - 到目前为止,一切都很好。
接下来,转到表单设计视图和表单属性,转到记录源,更新 SQL 语句以包含新字段。(我也通过查询生成器尝试过这个,结果相同。)从这里,我开始得到错误。
如果我返回表单视图并更改表单中的任何数据并点击下一个记录按钮或保存按钮,我会收到写入冲突错误。“自从您开始编辑此记录后,该记录已被其他用户更改...”“保存记录”按钮显示为灰色。我是唯一访问数据库或 SQL 服务器的人。
我试图完成新按钮的构建并将其链接到控制源中的新字段(这很好),但它没有任何区别。如果我进入编辑记录源并删除新字段,一切都会再次运行(但当然,新字段不在控制源列表中,因此未链接到复选框)。
有任何想法吗?谢谢。
解决方案
问题原因的有力竞争者是表单本身。
该表单很可能是使用特定查询作为记录源设置的。这并不是说这本质上是不正确的,但它使向源中添加新列变得更加困难。
如果您只是更改记录源以引用表本身,而不是查询,则问题可能会得到解决,如果这实际上是它的引用方式。
如果 Access 女士试图通过表单使用查询从表中提取数据,它本质上会悲观地锁定有问题的表,使其无法修改。但是,您通常仍然可以通过查询本身修改表,但您需要先将列更改添加到该查询中。
我不太确定我在这里是否有意义,但是像这样(对于名为“Table1”的表):
从理论上讲,如果表单是问题......那么如果您关闭它并尝试对表格进行修改,那么当表单关闭时更改应该会起作用。
推荐阅读
- scala - 如何从Scala中的元组列表中的元素获取不同的值
- spring - spring-boot 错误:超过最大重定向。可能陷入重定向循环
- javascript - 旨在在谷歌地图上移动的标记创建两对。一个会移动,一个会卡在初始位置
- oracle - ORA-01919: 角色 'RESTRICTED_ROLE1' 不存在
- c++ - 将 double 转换为 LPARAM 时遇到问题
- r - group_by 函数正在将数据帧转换为 tibble
- oracle - 从 Oracle apex 应用程序运行 Unix 命令
- java - 将字符串值从一种方法发送到另一种方法
- javascript - indexOf 在关注输入时不是函数错误
- python - 有效检查数组是否为锯齿状