Access有没有类似wm_concat的函数,实现sql 同一个人多条数据合并,GroupConcat效果

2022年1月4日11:54:55 评论 373

想要实现同一个人多条数据合并?mysql有concat函数

Access的确没有类似wm_concat的函数,需要自己建一个,网上大神已经写好了,亲测可行。效果如下
原表


T_Edwin
IDNameRole
1王楠部门经理
2张乐营销主任
3张乐市场推广员
4欧阳华技术主管

 

 

建立如上的表,并添加如下的函数:

打开vba,插入模块, 然后点插入,选择函数(全局的最好)。点工具后点引用,引用之后选activeX data obj。

Public Function GroupConcat(sColumn As String, sTable As String, Optional sCriteria As String, Optional sDelimiter As String = ",")
    On Error GoTo ErrHandler
    Dim rs As New ADODB.Recordset
    Dim sSQL As String
    Dim sResult As String
    sResult = ""
    sSQL = "select " & sColumn & " from " & sTable
    If sCriteria <> "" Then
        sSQL = sSQL & " where " & sCriteria
    End If
    rs.Open sSQL, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
    Do While Not rs.EOF
        If sResult <> "" Then
            sResult = sResult & sDelimiter
        End If
        sResult = sResult & rs.Fields(0).Value
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    GroupConcat = sResult
    Exit Function
ErrHandler:
    If rs.State <> adStateClosed Then
        rs.Close
    End If
    Set rs = Nothing
    GroupConcat = Err.Number & " : " & Err.Description

End Function

添加如下查询

SELECT Name, GroupConcat('Role','T_Edwin','Name=' & "'" & Name & "'") AS Roles
FROM T_Edwin
GROUP BY Name;

查询结果如下:

查询
NameRoles
欧阳华技术主管
王楠部门经理
张乐营销主任,市场推广员
  • 君子仁爱:取之有道。刷新有惊喜,看头像。
  • 原创不易,转载注明出处和链接:https://acg.92ylq.com/anime/access/
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: