2010-06-29 3 views
1

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

Крис

ответ

2

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

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

Посмотрите на это Does MS access(2003) have anything comparable to Stored procedure. I want to run a complex query in MS acceess

+0

Отлично, спасибо. Я не понимал, что поисковые поля были такой проблемой. Я только что добавил числовое поле, обновил его, чтобы посмотреть значение, удалил поле поиска и переименовал. Теперь у меня есть обычная таблица поиска, в которой хранятся отношения и идентификатор, реализована функция concatenate, как указано выше, и используется соединение sql для соединения моих данных со справочной таблицей, как вы ожидали. Спасибо! Chris – Chris

Смежные вопросы