Office中国论坛/Access中国论坛
标题:
【Access技巧】由分列数据引起的思考——查询也可使用公共函数
[打印本页]
作者:
盗梦
时间:
2014-3-18 11:10
标题:
【Access技巧】由分列数据引起的思考——查询也可使用公共函数
本帖最后由 盗梦 于 2014-3-18 11:18 编辑
今天碰到一个东西,要把表中的数据在查询中分列
那个字段是这样的 :字段名【FTest】
数据如下:
0.3*0.4
0.5*0.2
0.1*2
1*0.25
想要在查询中分成两列,分别是乘数和被乘数
当时,相对两种方法:
1、用instr定位"*"号,然后在用left,mid,right字符串函数截取
2、用split分列函数分列
第1种方法轻松搞定。但书写略过麻烦。于是,我就试试第2种,用split函数
在查询设计界面试着写表达式,结果尽然提示split未定义。
看来查询不支持split,得另谋它路。此时,灵光一闪,查询可以使用公共函数。
于是,我策马奔腾,飞速写了分列用的函数
Public Function funcSplit(str As String, strChar As String, intIndex)
'Split是一个分列函数,根据strChar作为分列标准,分列。再通过索引返回对应的值
'例如:0.3*0.4,要获取第二个数字。则,split("0.3*0.4","*")(1)
funcSplit = Split(str, strChar)(intIndex)
End Function
复制代码
再查询中调用一下,能够得到想要的效果。
这么一来。一些查询数据处理可以通过调用公共函数来完成。
不过速度如何。
我又测试一番。
发现
如果查询用域聚合函数,公共函数用记录集处理,公共函数速度快
如果查询用域聚合函数,公共函数用域聚合函数,速度一样
如果查询用简单计算,公共函数用简单计算,速度几乎一样
。。。
同等情况,公共函数的方法略优。而且易读易修改
下面是这次的实例:
查询设计——调用公共函数
[attach]53576[/attach]
查询效果
[attach]53577[/attach]
作者:
admin
时间:
2014-3-18 17:33
很好的技巧。
作者:
馨语馨愿
时间:
2014-4-28 21:54
谢谢楼主分享
作者:
zpy2
时间:
2014-8-16 05:42
谢谢分享!
作者:
zhaihe001
时间:
2015-2-8 21:28
谢谢,学习了.
作者:
李力军2
时间:
2016-4-26 15:04
很好的想法
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3