0
我是MS Access的新手。如何以逗號分隔顯示單行中的多條記錄
如何在MS Access中以逗號分隔的單行顯示多個記錄?
比如我有一個表
state
AL
AK
MA
HI
TX
VI
GU
我想以檢索數據,像下面
State
AL, AK, MA, HI, TX, VI, GU
誰能幫我查詢做到這一點?
我是MS Access的新手。如何以逗號分隔顯示單行中的多條記錄
如何在MS Access中以逗號分隔的單行顯示多個記錄?
比如我有一個表
state
AL
AK
MA
HI
TX
VI
GU
我想以檢索數據,像下面
State
AL, AK, MA, HI, TX, VI, GU
誰能幫我查詢做到這一點?
一種選擇是創建一個將返回一個函數連接值列表:
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
然後使用thi表情:
=ConcatenateField("YourTableName", "State", ", ")
或者在查詢:
Select Top 1
ConcatenateField("YourTableName", "State", ", ") As States
From
YourTableName