[AccessD] Feeding an paramarray to a paramarray Part(2)

Drew Wutka DWUTKA at Marlow.com
Wed Mar 12 11:57:23 CDT 2008


So, if we want one function with a paramarray argument to hand data to
another function with a paramarray argument:

Dim tmpSum As Long
Dim strTemp As String
Function MultipleRunningSums(ParamArray tmpValues() As Variant)
Dim tmpValueToRunSumFor
For Each tmpValueToRunSumFor In tmpValues
    RunningSum tmpValueToRunSumFor
Next
End Function
Function RunningSum(ParamArray tmpValues() As Variant)
Dim tmpCurrentValue As Long
strTemp = ""
tmpSum = 0
DoTheWorkForRunningSum tmpValues
strTemp = Left(strTemp, Len(strTemp) - 3)
If Val(strTemp) <> tmpSum Then Debug.Print strTemp & " = " & tmpSum
tmpCurrentValue = tmpSum
If tmpSum < 100 Then RunningSum tmpCurrentValue, tmpValues
End Function
Function DoTheWorkForRunningSum(ByVal tmpPossibleArray As Variant)
Dim tmpElement
For Each tmpElement In tmpPossibleArray
    If IsArray(tmpElement) Then
        DoTheWorkForRunningSum tmpElement
    Else
        tmpSum = tmpSum + Val(tmpElement)
        strTemp = strTemp & tmpElement & " + "
    End If
Next
End Function

Testing Results:
?MultipleRunningSums(1,2,3,4)
1 + 1 = 2
2 + 1 + 1 = 4
4 + 2 + 1 + 1 = 8
8 + 4 + 2 + 1 + 1 = 16
16 + 8 + 4 + 2 + 1 + 1 = 32
32 + 16 + 8 + 4 + 2 + 1 + 1 = 64
64 + 32 + 16 + 8 + 4 + 2 + 1 + 1 = 128
2 + 2 = 4
4 + 2 + 2 = 8
8 + 4 + 2 + 2 = 16
16 + 8 + 4 + 2 + 2 = 32
32 + 16 + 8 + 4 + 2 + 2 = 64
64 + 32 + 16 + 8 + 4 + 2 + 2 = 128
3 + 3 = 6
6 + 3 + 3 = 12
12 + 6 + 3 + 3 = 24
24 + 12 + 6 + 3 + 3 = 48
48 + 24 + 12 + 6 + 3 + 3 = 96
96 + 48 + 24 + 12 + 6 + 3 + 3 = 192
4 + 4 = 8
8 + 4 + 4 = 16
16 + 8 + 4 + 4 = 32
32 + 16 + 8 + 4 + 4 = 64
64 + 32 + 16 + 8 + 4 + 4 = 128

Hope this helps.

Drew
The information contained in this transmission is intended only for the person or entity to which it is addressed and may contain II-VI Proprietary and/or II-VI Business Sensitive material. If you are not the intended recipient, please contact the sender immediately and destroy the material in its entirety, whether electronic or hard copy. You are notified that any review, retransmission, copying, disclosure, dissemination, or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited.





More information about the AccessD mailing list