2017-01-08 1 views

Antwort

0

Sie können die folgenden "Crosstab" Abfrage schreiben, so dass die Felder werden wird:

TRANSFORM First(table1.state) AS FirstOfstate 
SELECT "State" AS Expr1 
FROM table1 
GROUP BY "State" 
PIVOT table1.state; 

oder in GUI:

enter image description here

0

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 
Verwandte Themen