使用 MS Access 更新表:操作必须使用可更新查询

Posted

技术标签:

【中文标题】使用 MS Access 更新表:操作必须使用可更新查询【英文标题】:Update a table with MS Access : Operation must use an updateable query 【发布时间】:2020-08-04 13:48:08 【问题描述】:

我正在尝试更新不同借记卡上的剩余金额。我有以下 2 个表格:卡片和交易。 我希望我的结果是:

 Number|Initial_Amount|Remaining_Amount         T_ID|T_Date|Credit_Card|Amount
----------------------------------------       ---------------------------------
    123|          1000|     820                    1| 05/02|        123| 100
    456|           200|     150                    2| 06/02|        456| 50
                                                   3| 06/02|        123| 80

我尝试运行以下查询:

UPDATE Credit_Cards
SET Credit_Cards.Remaining_Amount =( Credit_Cards.Initial_Amount-(
                                                                     SELECT  SUM(T.Amount)
                                                                     FROM Transactions AS T
                                                                     WHERE T.Credit_Card = Credit_Cards.Number));

但我收到以下错误:“操作必须使用可更新的查询”

可能是什么问题?我看到了很多关于 JOIN 的答案,但在这里没有使用一个,所以我不明白......

【问题讨论】:

看到这个post ,这个问题已经回答过了。 这能回答你的问题吗? "Operation must use an updateable query" error in MS Access 或者这个***.com/questions/62822270/…。保存计算,尤其是聚合计算,通常是不必要的,而且通常是糟糕的设计。如果可以计算更新的值,可以在需要的时候计算。 不幸的是,您发送的所有帖子都没有用...我做错了什么?为什么我不能保存计算字段?需要时计算是什么意思?谢谢 ! @june7 @asantz96 我以前看过这篇文章,但不明白它如何解决我的问题。我的做法有什么问题? 【参考方案1】:

我终于通过使用我上面写的子查询作为保存的查询来修复它,然后我做了另一个查询,我在 Credit_Card.Number 上加入了我的子查询和我的表,然后使用这个加入在我的报告中显示正确的信息.

【讨论】:

以上是关于使用 MS Access 更新表:操作必须使用可更新查询的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 事件驱动数据宏更新表(示例)

MS Access 直通查询更新

如何通过 MS ACCESS 表执行 SQL Server 表的批量更新

Access 中 SQL 链接表上的 UPDATE 查询的“操作必须使用可更新查询”

使用 SQL 从另一个 Access 表更新 MS Access 表

如何使用查询或 VBA 和 SQL 更新 MS ACCESS 中的表