【发布时间】:2020-07-05 21:40:21
【问题描述】:
我有一个从动态查询创建的数组。对于一个范围内的每个项目和日期,我得到几个值。这都很好。但我需要能够计算每个组(而不是每一行)的总数,并将该总数用作以下日期范围 29 周的起始值。
在 VBA 中,我对每一行数据都有一个结束总计。然后我可以在以下日期范围内使用该总数。
我的代码的问题是每行的最终总数,而不是每个组。
使用查询(我将其用作报告的数据源),我可以使用表达式获得正确的结束总计。
查询的问题是起始值不可用。
If cRequired < Week1 Then
recOut.AddNew
recOut.Fields("ItemNumber") = cItem
recOut.Fields("tB") = cOnHand
recOut.Fields("tPO") = cPO
recOut.Fields("tBC") = cBC
recOut.Fields("tSO") = CSO
recOut.Fields("tPD") = cPD
recOut.Fields("tIN") = cIN
recOut.Fields("tJT") = cJT
recOut.Fields("tWO") = cWO
recOut.Fields("tE") = cOnHand + cPO + cBC + CSO + cPD + cIN + cJT + cWO
recOut.Fields("RequiredDate") = cRequired
recOut.Fields("GroupDate") = Week1
recOut.Update
tEPast = cOnHand + cPO + cBC + CSO + cPD + cIN + cJT + cWO
End If
以下数据可通过查询获得。 Ending Total 是查询中的计算表达式并且是正确的。起始值由代码写入表中。这是不正确的。
[tB]+[SumOftPO]+[SumOftBC]+[SumOftSO]+[SumOftPD]+[SumOftIN]+[SumOftJT]+[SumOftWO]
009 1623.39 0 -106.404 0 0 0 0 0 2/19/2017 1516.87
009 1572.39 0 -390.477 0 0 0 0 0 2/26/2017 1182.14
009 1522.39 0 -414.684 0 0 0 0 0 3/5/2017 1107.07
对于第一行,代码获取了 4 次 cOnHand 的值,因为有 4 个原始日期(如下)。 tE 的计算针对相同的值 cOnHand 运行 4 次,每行一次。所以,下一个桶的起始值是错误的。
009 1623.39 0 -9.724 0 0 0 0 0 1613.667 2/12/2017
009 1623.39 0 -44.88 0 0 0 0 0 1578.511 2/13/2017
009 1623.39 0 -1.4 0 0 0 0 0 1621.991 2/15/2017
009 1623.39 0 -50.4 0 0 0 0 0 1572.991 2/17/2017
不太确定采用什么方法或如何获得正确的总数,无论是通过代码(正确的结束总数)还是通过查询(正确的开始值)。
我想看什么……
009 1623.91 0 -106.40 0 0 0 0 0 2/19/2017 1516.87
009 1516.87 0 -390.47 0 0 0 0 0 2/26/2017 1126.39
009 1126.39 0 -414.68 0 0 0 0 0 3/5/2017 711.71
【问题讨论】:
-
我认为没有为任何人提供足够的信息来确定您的问题。我有一种明显的感觉,就是你的一些变量没有设置好。
-
谢谢道格。感谢您仔细观察。正在设置变量。我发布的数据集来自工作表更新。我有一个解决方案。不是最好的,但工作。我已经更新了我的帖子。