设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2746|回复: 11
打印 上一主题 下一主题

[查询] 下面的查询如何实现,请高人指点

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-22 21:55:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面的查询如何实现,请高人指点?

如何通过查询(或其它方式) 把“表1”变为“表2: 。谢谢


本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享分享 分享淘帖 订阅订阅
2#
发表于 2013-3-23 16:30:17 | 只看该作者
写一个自定义函数,返回字符串即可。
3#
发表于 2013-3-23 20:13:00 | 只看该作者
搜索合并文本框
4#
 楼主| 发表于 2013-3-24 00:05:48 | 只看该作者
todaynew 发表于 2013-3-23 16:30
写一个自定义函数,返回字符串即可。


请高人指点如何写自定义函数?非常感谢
5#
发表于 2013-3-24 06:18:54 | 只看该作者
Public Function Dmerge(Exps As String, Domain As String, _
    Optional Criteria As String, Optional Separator As String = ";") As String
   
'函数功能:  合并指定记录集指定字段值为一个字符串
'参数说明:
'  expr :         要合并的字段
'  domain :     来源表或查询
'  criteria :      可选,限制记录的条件表达式
'  Separator : 可选,合并记录的分隔符,默认为分号(;)
'
'调用示例1:  Dmerge("姓名","人员表","性别='" & [性别] & "'",Chr(13) & Chr(10))
'                以上示例在查询中,使用了换行分隔符,返回换行显示的姓名
'调用示例2:Dmerge("产品名称","表1","订单ID=" & [订单ID])
'作      者:  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
6#
发表于 2013-3-24 12:27:49 | 只看该作者
一个不用循环实现的合并记录为字符串的函数,可在查询中调用

Public Function Dmerge(Exps As String, Domain As String, _
    Optional Criteria As String, Optional Separator As String = ";") As String
   
'函数功能:  合并指定记录集指定字段值为一个字符串
'参数说明:
'  expr :         要合并的字段
'  domain :     来源表或查询
'  criteria :      可选,限制记录的条件表达式
'  Separator : 可选,合并记录的分隔符,默认为分号(;)
'
'调用示例1:  Dmerge("姓名","人员表","性别='" & [性别] & "'",Chr(13) & Chr(10))
'                以上示例在查询中,使用了换行分隔符,返回换行显示的姓名
'调用示例2:Dmerge("产品名称","表1","订单ID=" & [订单ID])
'作      者:  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
7#
发表于 2013-3-24 19:28:23 | 只看该作者
8#
发表于 2013-3-25 09:17:01 | 只看该作者
谢谢版主
9#
 楼主| 发表于 2013-4-1 20:53:07 | 只看该作者
mclly2000 发表于 2013-3-25 09:17
谢谢版主

谢谢各位高人的指点 学习中学习中
10#
发表于 2013-4-1 21:10:40 | 只看该作者
这个案例很不错,学习学习,谢谢大家分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 15:00 , Processed in 0.076963 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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