Получение значения, а не ID - PullRequest
1 голос
/ 30 июня 2010

У меня есть таблица tblInvestigators, которая содержит поле поиска для отображения списка имен

В гранте может быть более 1 исследователя.

Требование моего проекта - перечислить всех исследователейв одной ячейке рядом с информацией о гранте, поэтому у меня будет:

Грант 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), а не имена.Как я могу получить имена?

Крис

1 Ответ

2 голосов
/ 30 июня 2010

Никогда не рекомендуется использовать поля поиска: http://www.mvps.org/access/lookupfields.htm

Это маскирует стандартный способ получения желаемых результатов, а именно использование запроса для присоединения идентификатора кпросмотрите таблицу и верните описание.

Посмотрите на это Имеет ли MS access (2003) что-либо сопоставимое с хранимой процедурой.Я хочу выполнить сложный запрос в MS Access

...