Eine Möglichkeit ist, eine Funktion zu erstellen, die zurückkehren verkettete Werteliste:
Public Function ConcatenateField(_
ByVal Source As String, _
ByVal Field As String, _
Optional ByVal Separator As String = ";") _
As String
' 2011-04-17. Gustav Brock, Cactus Data ApS, CPH.
Dim rs As DAO.Recordset
Dim Rows As Variant
Dim Fields() As Variant
Dim Sql As String
Dim Item As Integer
Dim ItemList As String
' Retrieve one field from table or query.
Sql = "Select [" & Field & "] From [" & Source & "] Order By 1 Asc"
Set rs = CurrentDb.OpenRecordset(Sql, dbOpenSnapshot)
If rs.RecordCount > 0 Then
' Fill array.
Rows = rs.GetRows(rs.RecordCount)
' Convert array to one dimension.
ReDim Fields(UBound(Rows, 2))
For Item = LBound(Rows, 2) To UBound(Rows, 2)
Fields(Item) = Rows(0, Item)
Next
' Create concatenated value list.
ItemList = Join(Fields(), Separator)
End If
rs.Close
Set rs = Nothing
ConcatenateField = ItemList
End Function
Dann verwenden Sie thi s Ausdruck:
=ConcatenateField("YourTableName", "State", ", ")
Oder in einer Abfrage:
Select Top 1
ConcatenateField("YourTableName", "State", ", ") As States
From
YourTableName