У меня есть таблица tblInvestigators которых содержит поле поиска, чтобы отобразить список именПолучение значения не идентификатор
Грант может иметь более чем на 1 исследователя.
Требование моего проекта является список всех исследователей в одной клетке рядом с деталями гранта, так что я должен был бы:
Grant A | Название A, B Имя, название C и т.д.
У меня есть модуль VBA, объединяющие исследователи в 1 клетку следующим образом:
'Concat Returns lists of items which are within a grouped field
Public Function c(strID As String, strAddMe As String) As String
Static prevID As String
Static strFinal As String
Static strLastAdded As String
If (strID = prevID And strAddMe <> strLastAdded) Then
strFinal = strFinal & ", " & strAddMe
Else
prevID = strID
strLastAdded = strAddMe
strFinal = strAddMe
End If
c = strFinal
End Function
И-запрос доступа, который называет его (SQL):
SELECT g.grant_id, Max(c(g.grant_id,tblInvestigators.investigator)) AS Expr1
FROM tblGrants AS g LEFT JOIN tblInvestigators ON g.grant_id = tblInvestigators.grant_id
WHERE (((g.grant_id)=6))
GROUP BY g.grant_id;
Когда я запускаю это, он возвращает список, разделенный запятыми, но это список идентификационных номеров из столбца поиска (tblInvestigators.investigator), а не имена. Как я могу получить имена?
Крис
Отлично, спасибо. Я не понимал, что поисковые поля были такой проблемой. Я только что добавил числовое поле, обновил его, чтобы посмотреть значение, удалил поле поиска и переименовал. Теперь у меня есть обычная таблица поиска, в которой хранятся отношения и идентификатор, реализована функция concatenate, как указано выше, и используется соединение sql для соединения моих данных со справочной таблицей, как вы ожидали. Спасибо! Chris – Chris