Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

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

时 间:2010-07-28 10:03:52
作 者:todaynew   ID:10802  城市:武汉
摘 要:函数的可变参数
正 文:

  有版友问能否如同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群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助