MS Access не имеет функции групповой конкатенации.
Проблема решается путём создания пользовательской функции и использования её в запросе.
Function group_concat(category As String) As String
With CurrentDb.OpenRecordset("SELECT [Цех] FROM [Имя таблицы] WHERE [Продукция] = '" & category & "'")
group_concat = ""
.MoveFirst
While Not .EOF
group_concat = group_concat & "," & ![Цех]
.MoveNext
Wend
.Close
End With
group_concat = Mid(group_concat, 2)
End Function
Поскольку пользовательская функция - скалярная, и не агрегатная, её нужно оборачивать какой-либо агрегатной функцией.
SELECT [Продукция], MAX(group_concat([Цех])) AS [Цех]
FROM [Имя таблицы]
GROUP BY [Продукция];
PS. Конечно, функцию можно сделать более универсальной, передавая в неё имена таблицы и полей, а также маркер типа данных поля категории.
---
Ну или взять готовую DConcat() от Patrick G. Matthews:
https://www.experts-exchange.com/articles/2380/Dom...