使用SUM查询更新表

时间:2016-11-16 04:55:42

标签: sql ms-access access-vba

我正在使用Access 2013 VBA。我想将总和数量从tblSoldMonthRecord更新为tbl_POPLan。

错误消息是"操作必须使用不可用的查询。"以下代码。

str = "UPDATE tbl_POPLan INNER JOIN " & _
            "(SELECT Item, SUM(Qty) AS SumQty FROM tblSoldMonthRecord GROUP BY Item) AS A ON " & _
        "tbl_POPLan.Item = A.Item  " & _
        "SET tbl_POPLan.M0 = A.SumQty "

DoCmd.RunSQL str

如果我从SQL中删除SUM,它就可以工作。

str = "UPDATE tbl_POPLan INNER JOIN " & _
            "(SELECT Item, Qty AS SumQty FROM tblSoldMonthRecord) AS A ON " & _
        "tbl_POPLan.Item = A.Item  " & _
        "SET tbl_POPLan.M0 = A.SumQty "

如何通过RunSQL将sum值更新为另一个表?

1 个答案:

答案 0 :(得分:1)

如果查询在查询或任何子查询中包含任何聚合函数,则查询不可更新。作为一种解决方法,您可以尝试使用域函数而不是聚合 - 在您的情况下使用DSum或使用带有Sum的子查询结果的临时表