2

我在 Access 2007 中有一个查询。它工作了几个月,但我突然收到“记录集不可更新”错误。认为错误一定是由最近的更改引起的,我回到存档版本(definitley 工作) - 他们都抛出了相同的错误。表本身是可更新的;事实上,同一张表上的另一个查询工作得很好。突然发生了什么事情会打断我的查询?代码如下:

    SELECT Prospects.Company, Contactnames.*, IIf([Prospects]![Key Contact]=[ContactID],True,False) AS [Key Contact], Prospects.Status
FROM Contactnames INNER JOIN Prospects ON Contactnames.CompanyID=Prospects.ID
WHERE (((Prospects.Status) Not Like "Duplicate"));

任何帮助将不胜感激。谢谢,奥利。

4

2 回答 2

5

如果您使用链接的 ODBC 表,如果您希望查询可更新,则需要在查询中包含所有表的主键字段。以下是一些潜在的“陷阱”:

  • Access 可能无法正确识别链接的 ODBC 表中的主键字段;经常(总是?)Access 选择它为表找到的第一个唯一索引(基于索引名称的字母顺序)并假设索引是主键
  • 向 MS SQL Server(可能还有其他 RDBMS)中的表添加复制将添加具有唯一索引的 GUID 列;连同上述几点,这可能会导致 Access 认为您的链接表具有与实际不同的主键
  • 对 ODBC 链接表的设计所做的更改不会自动反映在 Access 中;链接的 ODBC 表可以通过 Tools --> Database Utilities --> Linked Table Manager...(以及其他方式)刷新
于 2012-07-02T14:52:53.347 回答
0

可能的原因是更改的不是查询,而是数据库。

检查数据库文件是否没有被写保护。这将导致该错误消息。

于 2012-07-02T13:40:44.820 回答