循环访问 VBA Access 中字段的所有可能值

问题描述 投票:0回答:1

我有一个记录集,其中 TaxCode 列可以采用十几个不同的值。我想为每个 TaxCode 值计算 TaxableAmount 字段的总和,而无需提前知道我有哪些 TaxCode 值。

税号 应税金额
22 100
22 150
63 250
22 60

从这个例子中,我想获得这些总数:

税号 应税金额
22 310
63 250

我该怎么做?

我已经尝试过

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT TaxCode, TaxableAmount FROM dbo_MA_SaleDocDetail WHERE SaleDocID = " & SaleDocId)
rs.MoveLast
rs.MoveFirst

Do While Not rs.EOF
    For Each Field In .Fields
     if...?
Loop

非常感谢。

vba loops ms-access
1个回答
0
投票

这才是你真正应该在 SQL 中完成的事情,而不是在 VBA 中。这是最简单的分组聚合查询之一:

SELECT TaxCode, SUM(TaxableAmount)
FROM dbo_MA_SaleDocDetail 
GROUP BY TaxCode

您可以将其与 VBA 结合起来:

Set rs = CurrentDb.OpenRecordset("SELECT TaxCode, SUM(TaxableAmount) FROM dbo_MA_SaleDocDetail WHERE SaleDocID = " & SaleDocId & " GROUP BY TaxCode")

虽然你真的应该使用参数化查询

© www.soinside.com 2019 - 2024. All rights reserved.