ACCESS中自定义合并列字符串的函数

定义函数:
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
---------------------------------------------------------------------------------------
定义表T_Person_Course并插入数据:
编号 Name Course
1 张乐 语文
2 张乐 数学
3 张乐 英语
4 张乐 历史
5 朴正南 韩语
6 朴正南 汉语
7 欧阳南 计算机
8 欧阳南 农牧
9 欧阳南 音乐
-------------------------------------------------------------
查看每个人的主修科目:
SELECT T_Person_Course.Name, GroupConcat('Course','T_Person_Course','Name=' & "'" & Name & "'") AS Courses
FROM T_Person_Course
GROUP BY name;
--------------------------------------------------------------
执行结果:
Name Courses
欧阳南 计算机,农牧,音乐
朴正南 韩语,汉语
张乐         语文,数学,英语,历史
----------------------------------------------------------
本博客所有文章如无特别注明均为原创。作者:sysdee复制或转载请以超链接形式注明转自 成功志
原文地址《ACCESS中自定义合并列字符串的函数
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)