设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 11620|回复: 5
打印 上一主题 下一主题

[模块/函数] 【Access技巧】由分列数据引起的思考——查询也可使用公共函数

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2014-3-18 11:10:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 盗梦 于 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,得另谋它路。此时,灵光一闪,查询可以使用公共函数。
于是,我策马奔腾,飞速写了分列用的函数


  1. Public Function funcSplit(str As String, strChar As String, intIndex)
  2.    'Split是一个分列函数,根据strChar作为分列标准,分列。再通过索引返回对应的值
  3.    '例如:0.3*0.4,要获取第二个数字。则,split("0.3*0.4","*")(1)
  4.    funcSplit = Split(str, strChar)(intIndex)
  5. End Function
复制代码

再查询中调用一下,能够得到想要的效果。

这么一来。一些查询数据处理可以通过调用公共函数来完成。
不过速度如何。

我又测试一番。

发现
如果查询用域聚合函数,公共函数用记录集处理,公共函数速度快
如果查询用域聚合函数,公共函数用域聚合函数,速度一样
如果查询用简单计算,公共函数用简单计算,速度几乎一样
。。。

同等情况,公共函数的方法略优。而且易读易修改

下面是这次的实例:
查询设计——调用公共函数

查询效果


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1经验 +10 收起 理由
admin + 10

查看全部评分

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享分享 分享淘帖1 订阅订阅

点击这里给我发消息

2#
发表于 2014-3-18 17:33:53 | 只看该作者
很好的技巧。
3#
发表于 2014-4-28 21:54:33 来自手机 | 只看该作者
谢谢楼主分享来自: Android客户端

点击这里给我发消息

4#
发表于 2014-8-16 05:42:04 来自手机 | 只看该作者
谢谢分享!
回复

使用道具 举报

5#
发表于 2015-2-8 21:28:11 | 只看该作者
谢谢,学习了.
6#
发表于 2016-4-26 15:04:59 | 只看该作者
很好的想法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 07:41 , Processed in 0.088580 second(s), 38 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表