« windows xp設定vpn server扫雷游戏作弊器:内挂制作基本思路 »

表中同一字段分组合并 查询 ACCESS

DCONCAT 域字符串合并函数

程序相关   2009-09-18 15:54   阅读9   评论0  
字号:    

函数:DCONCAT

功能:连接指定的一组记录(域)中的一组值的字符串。

语法:DCONCAT(expr, domain, [criteria],[delimiter])

参数 说明
expr 表达式,用于标识要计算其记录数的字段。它可以是标识表或查询中字段的字符串表达式,也可以是对该字段中的数据执行计算的表达式。在 expr 中,可以包含表中字段的名称、窗体上的控件、常量或函数。如果 expr 包含一个函数,那么它可能是内置或用户定义的函数,但不是另一个域聚合函数或 SQL 聚合函数。
domain 字符串表达式,用于标识组成域的一组记录。它可以是表名称或不需要参数的查询的查询名称。
criteria 可选字符串表达式,用于限制对其执行 DCONCAT 函数的目标数据的范围。例如,criteria 通常等价于 SQL 表达式中的 WHERE 子句,但它没有单词 WHERE。如果 criteria 被省略,那么 DCONCAT 函数将针对整个域计算 expr。任何包含在 criteria 中的字段必须也是 domain中的字段;否则 DCONCAT 函数将返回 错误信息。
delimiter 可选字符串表达式,用于分隔各记录的字符串值。默认值为逗号"," 。

说明:可以在 Visual Basic、宏、查询表达式或者计算控件中使用 DCONCAT 函数。(ADO/DAO不支持)。

 

示例
NewOrder

ID OrderID Name Quantity
1 001021 五子棋 41
2 001021 象棋 54
3 001021 跳棋 545

4

001022 跳棋 45
5 001022  象棋 24
6 001023 五子棋 424
7 001023 跳棋 52

 

 

查询:
SELECT DISTINCT DCONCAT("DISTINCT Name","NewOrder","","/") As Name FROM NewOrder

Name
跳棋/五子棋/象棋

 

查询:
SELECT DISTINCT OrderID ,DCONCAT("Name","NewOrder","OrderID='" & OrderID & "'") As Name FROM NewOrder

OrderID Name
001021 五子棋,象棋,跳棋
001022 跳棋,象棋
001023 五子棋,跳棋

 

 

函数实现

Public Function DCONCAT(sExpr As String, sDomain 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 " & sExpr & " from (" & sDomain & ")"
    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
   
    DCONCAT = sResult
   
    Exit Function
   
ErrHandler:
    If rs.State <> adStateClosed Then
        rs.Close
    End If
    Set rs = Nothing
   
    DCONCAT = Err.Number & " : " & Err.Description
End Function

 

同一字段分组合并.rar  例子..简体MDB...

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。