Public Function fKonkat( _
tPole As String, _
tTable As String, _
Optional tWhere As String, _
Optional tRozdzielacz As String = ", ")
Dim rec As Recordset
Dim strSQL As String
Dim konkat As String
On Error GoTo err_exit
strSQL = "Select " & tPole & " FROM " & tTable
If tWhere = "" Then
Else
strSQL = strSQL & " WHERE " & tWhere
End If
Set rec = CurrentDb.OpenRecordset(strSQL, dbOpenForwardOnly)
With rec
Do Until .EOF
konkat = konkat & tRozdzielacz & .Fields(tPole)
.MoveNext
Loop
.Close
End With
Set rec = Nothing
konkat = Mid(konkat, Len(tRozdzielacz) + 1)
err_exit:
fKonkat = konkat
End Function
Wykorzystanie w kwerendzie:
Select
ID,
pole1, pole2,
fkonkat("PoleDoZbitki", "Tabela2", "ID = " & ID)
From Tabela1
Albo bezpośrednio na tabeli Tabela2:
Select
ID,
First(fkonkat("PoleDoZbitki", "Tabela2", "ID = " & ID))
From Tabela2
Group By ID
Funkcję można też rozbudować o dodatkowy parametr sortowania
(w przypadku tej "agregacji" czasami dość istotny ;-)
Krzysztof Naworyta