Sql 在Access VBA中,根据变量组的数组计算总计

Sql 在Access VBA中,根据变量组的数组计算总计,sql,vba,ms-access,Sql,Vba,Ms Access,我有一个从动态查询创建的数组。对于一个范围内的每个项目和日期,我会得到几个值。那很好。但我需要能够计算每个组(而不是每行)的总数,并将该总数用作接下来29周的日期范围的起始值 在VBA中,每行数据都有一个结束总数。然后,我可以在以下日期范围内使用该总数 我的代码的问题是,结束总数是针对每一行的,而不是针对每个组的 使用查询(我将其用作报表的数据源),我可以使用表达式获得正确的期末合计 查询的问题是起始值不可用 If cRequired < Week1 Then recOu

我有一个从动态查询创建的数组。对于一个范围内的每个项目和日期,我会得到几个值。那很好。但我需要能够计算每个组(而不是每行)的总数,并将该总数用作接下来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
对于第一行,代码获取
cOnHand
4次的值,因为有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

设法找到了一个有效的解决方案。因为我在查询中计算了正确的值,所以我将它读回一个变量,并使用它来设置下一个起始值。使用以下DLookup,而不是尝试直接处理计算

而不是:

 tEPast = cOnHand + cPO + cBC + CSO + cPD + cIN + cJT + cWO
改为:

Dim tryme As Double
        tryme = DLookup("teMe", "qBuckets", "GroupDate = Week1")
        tE0 = tryme

我不认为有足够的信息提供给任何人都能够查明你的问题。我有一种明显的感觉,你的一些变量没有设置好。谢谢道格。感谢你仔细观察。正在设置变量。我发布的数据集来自工作表更新。我有一个解决办法。不是最好的,但很有效。我已经更新了我的帖子。
Dim tryme As Double
        tryme = DLookup("teMe", "qBuckets", "GroupDate = Week1")
        tE0 = tryme