Return 字段的唯一记录

Return Unique Records for Field

我们有一个访问数据库,在访问 table 中为每个登录计算机的用户 ID 创建一个 csv 列表。问题是,如果用户标识在一台计算机上多次登录,则用户标识会重复。

让我们假设这就是 table 结构的样子

computer     DailyUsers
ABC-123      ml12, rs12, ml12, ml12, ee13
DEF-456      zx44, aa33, zx44

这就是我要查询的 return

Computer     DailyUsers
ABC-123      ml12, rs12, ee13
DEF-456      zx44, aa33

我尝试同时使用 Group ByDistinct,但它是逐行查看的,而不是按字段查看的

如何在 Access 2013 中实现这一点?

您可以在 VBA 中为 return 唯一用户创建自定义函数。

在 VBA 模块中添加:

Option Compare Database
Option Explicit

Public Function DistinctOnly(txt As String)

    Dim arr, v, rv As String
    Dim d As Object

    arr = Split(txt, ",")
    If UBound(arr) > 0 Then
        Set d = CreateObject("scripting.dictionary")
        For Each v In arr
            d(Trim(v)) = 1
        Next v
        rv = Join(d.keys, ",")
    Else
        rv = txt
    End If

    DistinctOnly = rv
End Function

用法:

SELECT Table1.[ID], Table1.[Users], DistinctOnly(Table1.[Users]) as UsersX
FROM Table1;

输入数据及查询结果: