设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 8920|回复: 27
打印 上一主题 下一主题

[模块/函数] 合并记录为字符串的一个函数

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2009-11-25 12:07:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一个不用循环实现的合并记录为字符串的函数,可在查询中调用

Public Function DMerge(Exps As String, Domain As String, _
    Optional Criteria As String, Optional Separator As String = ";") As String
   
'函数功能:  合并指定记录集指定字段值为一个字符串
'参数说明:
'  expr :         要合并的字段
'  domain :     来源表或查询
'  criteria :      可选,限制记录的条件表达式
'  Separator : 可选,合并记录的分隔符,默认为分号(;)
'
'调用示例:  DMerge("姓名","人员表","性别='" & [性别] & "'",Chr(13) & Chr(10))
'                以上示例在查询中,使用了换行分隔符,返回换行显示的姓名

'作      者:  t小雨
'创建时间:  2009/11/25


On Error Resume Next
    Dim rst As New ADODB.Recordset
    Dim strSql As String
   
    strSql = "Select " & Exps & " From " & Domain
    If Criteria <> "" Then strSql = strSql & " Where " & Criteria
    rst.Open strSql, CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText
   
    If Not rst.EOF Then DMerge = rst.GetString(adClipString, , , Separator)
    rst.Close
    Set rst = Nothing
End Function
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享分享 分享淘帖 订阅订阅
30#
发表于 2016-10-11 06:14:59 | 只看该作者
新生学习一下
29#
发表于 2013-4-7 14:09:20 | 只看该作者
{:soso_e163:}
28#
发表于 2013-4-1 21:55:07 | 只看该作者
rst.GetString(adClipString, , , Separator)


getstring咋用的,请高人解释下 谢谢

点击这里给我发消息

27#
发表于 2012-7-11 09:46:38 | 只看该作者
t小宝 发表于 2009-11-27 12:09
示例

版主好示例。
这里请教一下,假如我需要输出为:‘张颖’;‘李芳’;‘刘英玫’;‘张雪眉’;这种格式的字符串,该怎么改呢?

点击这里给我发消息

26#
 楼主| 发表于 2012-7-11 12:40:53 | 只看该作者
轻风 发表于 2012-7-11 09:46
版主好示例。
这里请教一下,假如我需要输出为:‘张颖’;‘李芳’;‘刘英玫’;‘张雪眉’;这种格式的字 ...

DMerge("""'"" & [姓氏] & [名字] & ""'""","雇员","尊称='" & [尊称] & "'")

点击这里给我发消息

25#
发表于 2012-7-11 13:16:37 | 只看该作者
t小宝 发表于 2012-7-11 13:06
DMerge("""'"" & [姓氏] & [名字] & ""'""","雇员","尊称='" & [尊称] & "'")

原来这样,我也试过加了3、4个引号,没想到要加这么多,呵呵。

点击这里给我发消息

24#
 楼主| 发表于 2012-7-11 14:52:09 | 只看该作者
轻风 发表于 2012-7-11 14:10
t版再帮个忙,似乎条件中用Like不行?如:BMBH Like '1003*'不行,但如写为BMBH Like '1003'则可以,但 ...

通配符用 % ,因为该函数使用ADO
23#
发表于 2012-7-11 14:29:44 | 只看该作者
轻风 发表于 2012-7-11 14:10
t版再帮个忙,似乎条件中用Like不行?如:BMBH Like '1003*'不行,但如写为BMBH Like '1003'则可以,但 ...

谢谢小宝,我用的时候也发现这一问题,另外数据量大的时候速度也些慢。

点评

用%代替*,使用ADO的缘故。数据量大肯定会慢,其实这个方法应该是最快的了。  发表于 2012-7-11 15:12

点击这里给我发消息

22#
发表于 2012-7-11 14:10:07 | 只看该作者
本帖最后由 轻风 于 2012-7-11 14:12 编辑
t小宝 发表于 2012-7-11 13:06
DMerge("""'"" & [姓氏] & [名字] & ""'""","雇员","尊称='" & [尊称] & "'")


t版再帮个忙,似乎条件中用Like不行?如:BMBH Like '1003*'不行,但如写为BMBH Like '1003'则可以,但这样Like就没意义了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-15 11:44 , Processed in 0.099136 second(s), 40 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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