`
jiaoronggui
  • 浏览: 1332307 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
B7c2eb31-a8ea-3973-a517-d00141f39b89
项目管理软件-redmin...
浏览量:116559
4a63e153-250f-30f6-a051-97cfc67cb3d3
IT职业规划
浏览量:199549
社区版块
存档分类
最新评论

access合并多行列数据到一行,类似于mysql的group_concact()函数

 
阅读更多

 


 

Concatenate fields in same table

Author(s)
Dev Ashish

(Q)    I need to concatenate a field in the format "Value1; Value2; Value3" etc. for each unique value of another field in the same table.  How can I do this?

(A)    Using the fConcatFld function,  in the Northwind database, the following query should return a concatenated list of all CustomerIDs if you group by ContactTitle.

使用方式:
SELECT ContactTitle, fConcatFld("Customers","ContactTitle","CustomerID","string",[ContactTitle]) AS Customers FROM Customers GROUP BY ContactTitle;

 

参数说明:

fConcatFld参数说明

stTable As String 表名称
 _stForFld As String,  查询的条件字段名称
_stFldToConcat As String,  合并的字段名称
_ stForFldType As String, 合并字段的类型
_vForFldVal As Variant 合并字段的查询条件
'************ Code Start **********
'This code was originally written by Dev Ashish
'It is not to be altered or distributed,
'except as part of an application.
'You are free to use it in any application,
'provided the copyright notice is left unchanged.
'
'Code Courtesy of
'Dev Ashish
'


Function fConcatFld(stTable As String, _
                    stForFld As String, _
                    stFldToConcat As String, _
                    stForFldType As String, _
                    vForFldVal As Variant) _
                    As String
'Returns mutiple field values for each unique value
'of another field in a single table
'in a semi-colon separated format.
'
'Usage Examples:
'   ?fConcatFld(("Customers","ContactTitle","CustomerID", _
'                "string","Owner")
'Where  Customers     = The parent Table
'       ContactTitle  = The field whose values to use for lookups
'       CustomerID    = Field name to concatenate
'       string        = DataType of ContactTitle field
'       Owner         = Value on which to return concatenated CustomerID
'


Dim lodb As Database, lors As Recordset
Dim lovConcat As Variant, loCriteria As String
Dim loSQL As String
Const cQ = """"

    On Error GoTo Err_fConcatFld
    
    lovConcat = Null
    Set lodb = CurrentDb
    
    loSQL = "SELECT [" & stFldToConcat & "] FROM ["
    loSQL = loSQL & stTable & "] WHERE "
    
    Select Case stForFldType
        Case "String":
            loSQL = loSQL & "[" & stForFld & "] =" & cQ & vForFldVal & cQ
        Case "Long", "Integer", "Double":    'AutoNumber is Type Long


            loSQL = loSQL & "[" & stForFld & "] = " & vForFldVal
        Case Else
            GoTo Err_fConcatFld
    End Select
    
    Set lors = lodb.OpenRecordset(loSQL, dbOpenSnapshot)
    
    'Are we sure that duplicates exist in stFldToConcat


    With lors
        If .RecordCount <> 0 Then
            'start concatenating records


            Do While Not .EOF
                lovConcat = lovConcat & lors(stFldToConcat) & "; "
                .MoveNext
            Loop
        Else
            GoTo Exit_fConcatFld
        End If
    End With
        
    'That's it... you should have a concatenated string now
    'Just Trim the trailing ;


    fConcatFld = Left(lovConcat, Len(lovConcat) - 2)


Exit_fConcatFld:
    Set lors = Nothing: Set lodb = Nothing
    Exit Function

Err_fConcatFld:
    MsgBox "Error#: " & Err.Number & vbCrLf & Err.Description
    Resume Exit_fConcatFld
End Function
'************ Code End **********

0
0
分享到:
评论

相关推荐

    mysql group_concat 实现把分组字段写成一行的方法示例

    本文实例讲述了mysql group_concat 实现把分组字段写成一行的方法。分享给大家供大家参考,具体如下: 功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。 函数语法: group_concat( [DISTINCT]...

    MySQL中文参考手册

    + 3.4.4 运营一个使用MySQL的Web服务器 o 3.5 MySQL的许可证和技术支持费用 + 3.5.1 付款信息 + 3.5.2 联系信息 o 3.6 商业性支持的类型 + 3.6.1 基本的电子邮件支持 + 3.6.2 扩展的电子邮件支持 + 3.6.3 ...

    MYSQL

    9.1.1 用于数据和排序的字符集 9.1.2 增加一个新的字符集 9.1.3 多字节字符支持 9.2 更新日志 9.3 MySQL数据库表可以有多大? 9.4 MySQL数据库表类型 10 从 MySQL 得到最大的性能 ...

    MySQL中文参考手册.chm

    9.1.1 用于数据和排序的字符集 9.1.2 增加一个新的字符集 9.1.3 多字节字符支持 9.2 更新日志 9.3 MySQL数据库表可以有多大? 9.4 MySQL数据库表类型 10 从 MySQL 得到最大的...

    (适用于ACCESS、MYSQL、SQL_SERVER等数据库的语句规范

    **IN** 运算符用于列出一个或多个可能的值,这些值将被当作一个标准,用来从表中查找匹配的行。 ##### 基本语法 ```sql SELECT column_name1, column_name2, ... FROM table_name WHERE column_name IN (value1, ...

    经典的SQL语句大全,access_SqlServer_MySQL通用

    本资源"经典的SQL语句大全,access_SqlServer_MySQL通用"涵盖了Access、SQL Server和MySQL这三种常见的数据库管理系统中的SQL使用方法,旨在提供一个通用的SQL语法参考。 1. Access SQL: Access是由微软开发的关系...

    MySQL 5.1中文手冊

    2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意...

    mysql官方中文参考手册

    2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意...

    MySQL 5.1参考手册

    2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意...

    Mysql8.0 Window 动态链接库

    动态链接库(DLL)是一种共享库,它包含了一系列可执行代码和数据,多个程序可以同时调用这些功能,以节省内存并促进代码重用。在MySQL 8.0中,动态链接库扮演着关键角色,提供了核心服务、数据库引擎以及与应用程序...

    MySQL 5.1参考手册 (中文版)

    2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意...

    MySQL 5.1参考手册中文版

    2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix...

    MYSQL中文手册

    2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它...

    MySQL 5.1官方简体中文参考手册

    2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意...

    MySQL5 权威指南第3版中文版_part1

     9.5 涉及多个数据表的关联查询(LEFT/RIGHT JOIN)  9.6 合并查询结果(UNION)  9.7 分组查询,统计函数(GROUP BY)  9.8 修改数据(INSERT、UPDATE和DELETE)  9.9 创建数据表、数据库和索引  第10章 SQL...

    MySQL5.1参考手册官方简体中文版

    2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意...

    mysql5.1中文手册

    将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. ...

    MySql基础教程

    - **MySQL**是一种流行的开源关系型数据库管理系统,广泛应用于各种规模的应用程序中。它以其高性能、可靠性和易用性而著称。 #### 二、连接与断开MySQL服务器 - **连接服务器**:为了与MySQL服务器建立连接,通常...

Global site tag (gtag.js) - Google Analytics