操作必须使用可更新的查询错误访问 [重复]
Posted
技术标签:
【中文标题】操作必须使用可更新的查询错误访问 [重复]【英文标题】:operation must use an updateable query error Access [duplicate] 【发布时间】:2017-08-26 02:23:16 【问题描述】:我有一个主表 tblBudget,其中包含像
这样的条目ProjID Type Budget Active
101 ROM 100 No
101 PLE 110 No
101 DLE 120 Yes
102 ROM 200 No
102 PLE 210 Yes
每个月我都会得到一个 excel,我将其导入并存储到一个临时表 tblMonthlyBudget 中,其中包含诸如
之类的条目ProjID Type Budget Active
101 EAC 100 Yes
102 DLE 110 Yes
我编写了一个更新查询,尝试将 tblBudget 中的所有 Active
条目更新为“否”,以便插入最活跃的新记录。我的查询是
UPDATE tblBudget
INNER JOIN tblMonthlyBudget
ON tblBudget.ProjectId = tblMonthlyBudget.ProjectID
SET tblBudget.Active = false
但是我得到了错误
操作必须使用可更新的查询
即使查询似乎在数据表和设计视图中正确显示。我只有在执行查询时才得到它。我尝试搜索错误并尝试了各种组合但没有成功。欢迎任何替代方法。 我怀疑这是因为临时表包含多个记录。
【问题讨论】:
通常在两个源表上(无查询),这样的更新应该可以工作。这两者必须有一些结构性的东西。 临时表是什么意思?tblBudget
有主键吗?如果是,是什么?
@Andre 谢谢你的帮助。我基于此找出了问题,我试图根据带有交叉表查询的连接来更新表。当我在临时表中插入交叉表查询的结果时,问题就解决了。
【参考方案1】:
我已尝试使用您提供的数据和表结构来复制您的问题。但是 UPDATE 按我的预期工作。如果 tblMonthlyBudget 中有重复的条目,它仍然可以工作 - 它只是更新了过多的次数。请阅读mcve 并使用实际产生错误的数据和表结构来更改您的问题。否则我们帮助你的希望几乎为零。
【讨论】:
谢谢乔纳森,我发现了问题,tblMonthlyBudget 是一个交叉表查询,它转置了另一个表。当我在临时表中插入交叉表查询的结果时,问题就解决了。出于某种原因,访问权限不允许我根据与交叉表查询的连接来更新表。 是 更新连接时访问非常严格。很高兴你把它修好了。以上是关于操作必须使用可更新的查询错误访问 [重复]的主要内容,如果未能解决你的问题,请参考以下文章