Access中查询某个分组中多行字段值的拼接字串的方法

2016-02-19 13:29 216 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的Access中查询某个分组中多行字段值的拼接字串的方法,希望大家看完后能赶快学习起来。

【 tulaoshi.com - 编程语言 】

        access的SQL语法中没有自定义函数,也不能象SQL Server中一样用变量、游标、子查询等方法来灵活处理查询语句。
       
        但是,在Access环境中,透过模块中的过程,可利用功能强大的VB语言,生成复杂需求的查询语句。
     
       下面是本人今天在Access版块中的一个回复,以此例子,简单说明Access依托VB所蕴含的强大功能。

        网友提问:      
--------------------------------------------------------------------------------
       我在ACCESS里面的表如下:
       comname      name     sex
       1公司        小王 男  
       1公司        小李 女  
       2公司        小张 男  

       我想将同公司的内容合在一起如:
comname      name         sex   
1公司       小王,小李  男,女  
2公司      小张     男    

请问我在access里面该如可操作?请问有什么好的方法去处理??
--------------------------------------------------------------------------------

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

解答:
----------------------------------------------------------------------------------
在 access的模块中建立一个自定义函数:

public Function CombStr(TableName As String, FieldName As String, GroupField As String, GroupValue As String) As String

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    Dim ResultStr As String
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset(" select " & FieldName & " from " & TableName & " where " & GroupField & "='" & GroupValue & "'")
    If rs.RecordCount 0 Then
    Do While Not rs.EOF
        ResultStr = ResultStr & "," & rs.Fields(0).Value
        rs.MoveNext
    Loop
    End If
    If ResultStr "" Then ResultStr = Mid(ResultStr, 2)
    CombStr = ResultStr
   
End Function

建立查询:

select T.comname, combstr("T","Name","comname",t.comname) AS CombName, combstr("T","ses","comname",t.comname) AS CombSex
FROM T
GROUP BY T.comname

----------------------------------------------------------------------------------------------------

来源:http://www.tulaoshi.com/n/20160219/1604431.html

延伸阅读
在创建Access2007表之后,有时需要修改表的设计,在表中增加或删除字段。在Access2007中,可以在“设计”视图和“数据表”中添加或删除字段。 一、在“设计”视图中添加或删除字段 在“设计”视图中添加或删除字段的操作步骤如下: (1)在“教学管理”数据库中,打开“学生”表并切换到设计视图。添加一个“出生日期”字段...
专家解答 通过查询任何数据库中的三个系统表,你可以获得每个表的每一个字段的默认值。下面是这个核心查询。它返回分配给当前数据库中每个用户表的默认值。这个查询在SQL 2000和SQL 2005中都是兼容的。 Quote:  代码如下: SELECT SO.NAME AS "Table Name", SC.NAME AS "Column Name", SM.TEXT AS "Default Value" FROM ...
在Access中创建表一般是用ADO来执行SQL语句来创建表。Access中的字段类型在SQL语句中是什么呢?在MSDN中有篇文章介绍得很详细: http://msdn.microsoft.com/office/understanding/access/codesamples/default.aspx?pull=/library/en-us/dnacc2k/html/acintsql.asp 下面是我写的一个SQL语句,在Delphi中用ADOConnection对象执...
4.在查询中执行计算的注意事项 如果要在字段中显示计算的结果,可以使用 Microsoft Access 所提供的预定义计算或自定义的计算。使用所谓“总计”的预定义计算,可计算出记录组或全部 记录的下列量值:总和(Sum)、平均值(Avg)、数量(Count)、最小值(Min)、最大值(Max)、 标准偏差(StDev)或方差(Var)。可以对每个字段选择要进行的总计计...
标签: 电脑入门
出现错误时通常有一些错误值,各个错误值代表不同的含义,每个错误值都有不同的原因和解决方法。 1.####错误 此错误表示列不够宽,或者使用了负日期或时间. 当列宽不足以显示内容时,可以通过以下几种办法纠正: (1)调整列宽,或直接双击列标题右侧的边界. (2)缩小内容以适应列宽. (3)更改单元格的数字格式,使数字适合现有单元格宽度.例如,可...

经验教程

163

收藏

46
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部