1

我有一个包含以下字段(列)的表

First Name   |  Last Name | Email | ContactID | AccountID

我有相同的名称、电子邮件和 AccountID 但不同的 ContactID 的重复行。有没有一种方法可以构建一个查询,该查询可以返回与一个帐户匹配的相互附加的 ContactID 列表?

可以说我有

First Name   |  Last Name | Email | ContactID | AccountID
----------------------------------------------------------
fname        |  lanem     | e@m.ca| 123       | 1
fname        |  lanem     | e@m.ca| 124       | 1    

返回

ContactID | AccountID
----------------------
123 , 124 | 1

我正在使用访问权限(不是选择)

4

1 回答 1

1

您可以将以下代码粘贴到“常规”VBA 模块(不是与表单关联的类模块)中,根据需要编辑表名,然后将该函数用作查询中的列,如下所示:listContactIDs([AccountID])

Public Function listContactIDs(AccountID As Long) As String
Dim cdb As DAO.Database, rst As DAO.Recordset, s As String
Dim Separator As String

Separator = ", "

Set cdb = CurrentDb
Set rst = cdb.OpenRecordset( _
        "SELECT ContactID FROM [TableName] WHERE AccountID=" & _
            AccountID & " ORDER BY ContactID", _
        dbOpenSnapshot)
s = ""
Do While Not rst.EOF
    s = s & rst!ContactID & Separator
    rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Set cdb = Nothing
If Len(s) > 0 Then
    ' remove trailing separator
    s = Left(s, Len(s) - Len(Separator))
End If
listContactIDs = s
End Function
于 2013-03-19T14:20:20.400 回答