首页 文章

计算查询vba访问中的加权平均值

提问于
浏览
0

我正在开发一个数据库,需要根据每个单位的实际成本来估算库存的加权平均成本 . 源数据位于组合项目接收/返回历史记录的查询中,并按项目ID和接收日期对结果进行排序 . 所以,我从这个查询得到的是这样的:

项目#RECPT_DATE QTY UNIT_COST
A1 10/15/2001 100 5.50
A1 09/02/2001 50 6.00
A1 06/10/2001 40 7.00
A2 12/02/2001 75 15.00
A2 07/20/2001 20 14.50

现在,我有另一张 table 告诉我现有的总数
库存中每件商品的数量 .

项目#TOT_QTY
A1 [加权平均成本]
A2 [加权平均成本]
那么,这可能与访问中的VBA有关吗?任何帮助将非常感激!
谢谢 .

Public Function SumProduct(Array1 As Variant, Array2 As Variant) As Variant

    Dim lngRowMax As Long
    Dim lngColMax As Long
    Dim i As Long
    Dim j As Long
    Dim var As Variant

    lngRowMax = IIf(UBound(Array1, 2) <= UBound(Array2, 2), UBound(Array1, 2), UBound(Array2, 2))
    lngColMax = IIf(UBound(Array1) <= UBound(Array2), UBound(Array1), UBound(Array2))
    ReDim var(0 To lngRowMax)
    For i = 0 To lngRowMax
        For j = 0 To lngColMax
            var(i) = var(i) + Array1(j, i) * Array2(j, i)
        Next j
        SumProduct = SumProduct + var(i)
    Next i

End Function

1 回答

  • 0

    公共函数SumProduct(Array1 As Variant,Array2 As Variant)As Variant

    Dim lngRowMax As Long
    Dim lngColMax As Long
    Dim i As Long
    Dim j As Long
    Dim var As Variant
    
    lngRowMax = IIf(UBound(Array1, 2) <= UBound(Array2, 2), UBound(Array1, 2), UBound(Array2, 2))
    lngColMax = IIf(UBound(Array1) <= UBound(Array2), UBound(Array1), UBound(Array2))
    ReDim var(0 To lngRowMax)
    For i = 0 To lngRowMax
        For j = 0 To lngColMax
            var(i) = var(i) + Array1(j, i) * Array2(j, i)
        Next j
        SumProduct = SumProduct + var(i)
    Next i
    

    结束功能

相关问题