2

我通过 MS Access Linked Tables 将表链接到 SQL 2008R2 DB。

当我想更改底层 SQL 表中包含多个位字段的 Access 链接表中的数据时,我收到此警告:

自您开始编辑该记录以来,该记录已被其他用户更改。如果您保存记录,您将覆盖其他用户所做的更改

当表中只有一个位字段时,我没有任何问题。恕我直言,这真是一个奇怪的错误。有没有其他人遇到过这种情况并偶然找到了解决方法?

4

2 回答 2

1

在使用 SQL 处理链接表时,我已经看到了这种问题。我不确定为什么您会特别看到位字段的问题。尝试将数据类型为时间戳 (rowversion) 的“ts”列添加到表中,然后在 Access 中重新链接。

于 2012-10-25T18:23:40.310 回答
0

我知道这是一个老问题,但也许我的回答会让其他人受益,因为我在同样和其他类似的问题上苦苦挣扎。

我有类似的错误,并且大部分都能够解决它。可能有帮助的一件事是在数据库上使用 SQL Profiler,并在您尝试添加新行时观察 Access 发出的 SQL 命令。

几件事要检查.. 1) 验证您在表中设置了一个 ID 列作为主键和自动编号 2) 如果这涉及另一个表之间的主/子关系,在 Access 数据库工具“关系”中,指定这些类型之间的关系和连接类型。3)如果表之间存在连接,则在查询中公开主列和外部列。

使用 SQL Profiler,我会看到它会在哪里尝试根据除主键之外的其他列来查找要更新的行。例如

更新表集 ... 其中 id = 5 和 data1 = somevalue 和 data2 == othervalue

这样做时,我有时会遇到同样的错误,因为我可能在新行中编辑了其他值,因此复杂的 where 子句会失败。您想要的是让更新完全依赖于主键。

于 2015-04-18T18:34:16.397 回答