我是MS Access的新手。
如何在MS Access中以逗号分隔的单行中显示多个记录?
例如我有一张表
state
AL
AK
MA
HI
TX
VI
GU
我想按如下所示检索数据
State
AL, AK, MA, HI, TX, VI, GU
有人可以帮我查询吗?
答案 0 :(得分:0)
您可以撰写以下内容" Crosstab"查询所以将成为字段:
TRANSFORM First(table1.state) AS FirstOfstate
SELECT "State" AS Expr1
FROM table1
GROUP BY "State"
PIVOT table1.state;
或在GUI中:
答案 1 :(得分:0)
一个选项是创建一个函数,该函数将返回连接的值列表:
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
然后使用这个表达式:
=ConcatenateField("YourTableName", "State", ", ")
或在查询中:
Select Top 1
ConcatenateField("YourTableName", "State", ", ") As States
From
YourTableName