【access小品】姊妹函数--自定义函数编制讲座四-煮江品茶
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-教程


【access小品】姊妹函数--自定义函数编制讲座四

发表时间:2011/5/31 13:39:40 评论(1) 浏览(7127)  评论 | 加入收藏 | 复制
   
摘 要:自定义函数编制
正 文:

  域函数很有用处,可以对记录做纵向的分类统计。不过域函数还是不能全部的应付各类纵向的分类处理,比如分类联接字符型数据,再比如分类连乘等等。这种情况下我们可以采用ADO记录集来处理此类问题,而且这种类型的函数你只要会编写一个,就能举一反三的解决若干个同类问题。

 

  前不久,煮茶论道同志问了一个关于分类联接字符串的问题,问题如下:
------------------------------
表中有记录如下:
姓名 科目
张三 语文
张三 数学


“张三”有两条记录,我想转换成 张三 语文 数学 成为一条记录

-------------------------------
  
  对于这个问题,可以写一个自定义函数如下:

Function DDSUM(tbname as string,fldname as string,fldIDname as string,StrID As String) as string
'示例:select 姓名 & " " & DDSUM("课程表","学科","姓名",[姓名]) from 课程表 group by 姓名
Dim rs As New ADODB.Recordset
Dim ssql As String
Dim i As Long
Dim s as string
ssql = "select " & fldname & " from " & tbname & " where Cstr(" & fldIDname & ")='" & strID & "'"
rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
for i=1 to rs.recordcount
    DDSUM=DDSUM & rs.Fields(fldname).value & " "
    rs.movenext
next
DDSUM=left(DDSUM,len(DDSUM)-1)
rs.close
set rs=nothing
end function

-------------------------------

  其后,版友liqianwu同志又问了一个从工序合格率,计算产品合格率的问题,也就是分类连乘的问题。对于这个问题,可以将上面的函数稍作修改,写成如下:


Function Multiply(tbname As String, fldname As String, fldIDname As String, StrID As String) As String
'示例:select 产品,Multiply("生产表","合格率","产品",[产品]) as 产品合格率 from 生产表 group by 产品
Dim rs As New ADODB.Recordset
Dim ssql As String
Dim i As Long
Dim s As String
ssql = "select " & fldname & " from " & tbname & " where Cstr(" & fldIDname & ")='" & StrID & "'"
rs.Open ssql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Multiply = 1
For i = 1 To rs.RecordCount
    Multiply = Multiply * rs.Fields(fldname).Value
    rs.MoveNext
Next
rs.Close
Set rs = Nothing
End Function


-------------------------------

  可以看出,两个函数的结构基本一致,只是在循环体中的语句稍做了修改,我们可以把这样一类的函数叫做姊妹函数。在编程过程中,我们经常的会遇到很多类似和相近的问题,解决这些问题的时候,我们不能采取狗熊掰苞米,掰一个丢一个。要善于从以往的经验中获取经验,举一反三得解决问题。只有这样开发的效率才能提高,也才能在不断的积累中,提高自己的能力。

 

上一课   下一课


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【access小品】逐步扩展--自定义函数编制讲座一  【煮江品茶  2011/4/26】
【access小品】中心开花--自定义函数编制讲座二  【煮江品茶  2011/4/28】
【access小品】情侣函数--自定义函数编制讲座三  【煮江品茶  2011/5/21】
【access小品】一打两就--自定义函数编制讲座五  【煮江品茶  2011/6/15】
【access小品】裸奔--自定义函数编制讲座六  【煮江品茶  2011/6/20】
常见问答
技术分类
相关资源
文章搜索
关于作者

煮江品茶

文章分类

文章存档

友情链接