【access小品】最值及平均值---函数的可变参数-煮江品茶
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


【access小品】最值及平均值---函数的可变参数

发表时间:2010/7/28 10:03:52 评论(6) 浏览(12485)  评论 | 加入收藏 | 复制
   
摘 要:函数的可变参数
正 文:

  有版友问能否如同Excel一样横向的求字段的平均值(其中如果字段值为空这不在平均值计算范围内),对于这个问题需要用自定义函数解决。在自定义函数中,要用到可变参数概念,也就是说需要适应带入的参数个数变化。这一方法是在事先无法确定参数数量情况下常用的一种方法。

Function DDMax(ParamArray A() As Variant) As Single
'示例:select *,DDmax(字段1,字段2,字段3,字段4) as 最大值 from 表1
Dim i As Long
Dim Mx As Single
Mx = -1 * 10 ^ 10
For i = 0 To UBound(A, 1)
        If IsNumeric(A(i)) = True Then
              If A(i) > Mx Then Mx = A(i)
        End If
Next
DDMax = Mx
End Function


Function DDMin(ParamArray A() As Variant) As Single
'示例:select *,DDmin(字段1,字段2,字段3,字段4) as 最小值 from 表1
Dim i As Long
Dim Mn As Single
Mn = 10 ^ 10
For i = 0 To UBound(A, 1)
        If IsNumeric(A(i)) = True Then
              If A(i) < Mx Then Mx = A(i)
        End If
Next
DDMin = Mn
End Function


Function DDAvg(ParamArray A() As Variant) As Single
'示例:select *,DDAvg(字段1,字段2,字段3,字段4) as 平均值 from 表1
Dim i As Long
Dim S As Single
Dim C As Long
S = 0: C = 0
For i = 0 To UBound(A, 1)
        If IsNumeric(A(i)) = True Then
              S = S + A(i)
              C = C + 1
        End If
Next
If C <> 0 Then
        DDAvg = S / C
Else
        DDAvg = 0
End If
End Function

 


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【access小品】最值函数  【todaynew  2010/7/19】
具有与电子表格中一样方便的求和、计数、平均值、方差、最大值、最小值...  【曹光耀  2010/11/26】
【access入门】聚合函数的示例\聚合函数应用举例,Sum合计\...  【麥田  2012/3/25】
快速开发平台--编译错误:错误的参数号或无效的属性赋值解决方法  【麥田  2013/5/24】
如何在窗体间传递参数  【一杯绿茶  2013/6/24】
常见问答
技术分类
相关资源
文章搜索
关于作者

煮江品茶

文章分类

文章存档

友情链接