設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 11538|回復(fù): 5
打印 上一主題 下一主題

[模塊/函數(shù)] 【Access技巧】由分列數(shù)據(jù)引起的思考——查詢也可使用公共函數(shù)

[復(fù)制鏈接]

點(diǎn)擊這里給我發(fā)消息

跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2014-3-18 11:10:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 盜夢 于 2014-3-18 11:18 編輯

今天碰到一個(gè)東西,要把表中的數(shù)據(jù)在查詢中分列
那個(gè)字段是這樣的 :字段名【FTest】
數(shù)據(jù)如下:
0.3*0.4
0.5*0.2
0.1*2
1*0.25

想要在查詢中分成兩列,分別是乘數(shù)和被乘數(shù)
當(dāng)時(shí),相對兩種方法:
1、用instr定位"*"號(hào),然后在用left,mid,right字符串函數(shù)截取
2、用split分列函數(shù)分列

第1種方法輕松搞定。但書寫略過麻煩。于是,我就試試第2種,用split函數(shù)
在查詢設(shè)計(jì)界面試著寫表達(dá)式,結(jié)果盡然提示split未定義。

看來查詢不支持split,得另謀它路。此時(shí),靈光一閃,查詢可以使用公共函數(shù)。
于是,我策馬奔騰,飛速寫了分列用的函數(shù)


  1. Public Function funcSplit(str As String, strChar As String, intIndex)
  2.    'Split是一個(gè)分列函數(shù),根據(jù)strChar作為分列標(biāo)準(zhǔn),分列。再通過索引返回對應(yīng)的值
  3.    '例如:0.3*0.4,要獲取第二個(gè)數(shù)字。則,split("0.3*0.4","*")(1)
  4.    funcSplit = Split(str, strChar)(intIndex)
  5. End Function
復(fù)制代碼

再查詢中調(diào)用一下,能夠得到想要的效果。

這么一來。一些查詢數(shù)據(jù)處理可以通過調(diào)用公共函數(shù)來完成。
不過速度如何。

我又測試一番。

發(fā)現(xiàn)
如果查詢用域聚合函數(shù),公共函數(shù)用記錄集處理,公共函數(shù)速度快
如果查詢用域聚合函數(shù),公共函數(shù)用域聚合函數(shù),速度一樣
如果查詢用簡單計(jì)算,公共函數(shù)用簡單計(jì)算,速度幾乎一樣
。。。

同等情況,公共函數(shù)的方法略優(yōu)。而且易讀易修改

下面是這次的實(shí)例:
查詢設(shè)計(jì)——調(diào)用公共函數(shù)

查詢效果


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊

x

評分

參與人數(shù) 1經(jīng)驗(yàn) +10 收起 理由
admin + 10

查看全部評分

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享分享 分享淘帖1 訂閱訂閱

點(diǎn)擊這里給我發(fā)消息

2#
發(fā)表于 2014-3-18 17:33:53 | 只看該作者
很好的技巧。
3#
發(fā)表于 2014-4-28 21:54:33 來自手機(jī) | 只看該作者
謝謝樓主分享來自: Android客戶端

點(diǎn)擊這里給我發(fā)消息

4#
發(fā)表于 2014-8-16 05:42:04 來自手機(jī) | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報(bào)

5#
發(fā)表于 2015-2-8 21:28:11 | 只看該作者
謝謝,學(xué)習(xí)了.
6#
發(fā)表于 2016-4-26 15:04:59 | 只看該作者
很好的想法
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 08:32 , Processed in 0.129581 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表