2010-06-29 9 views
1

이름 목록을 표시하는 조회 필드가 포함 된 표가 있습니다.ID가 아닌 값 얻기

보조금에 조사자가 두 명 이상일 수 있습니다.

내 프로젝트의 요구 사항은 부여 세부 사항 옆에 단일 셀의 모든 연구자를 나열하는 것입니다, 그래서 난 거라고 :

교부금을 | 이름 A, 이름 B, 이름 C 등

나는이 다음과 같이 1 개 셀에 수사관을 연결 VBA를 모듈 :

'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)의 ID 번호 목록입니다. 이름을 어떻게 알 수 있습니까?

크리스

답변

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

감사합니다. 나는 룩업 필드 (look-up fields)가 그런 문제 였음을 깨닫지 못했다. 방금 ​​숫자 필드를 추가하고 조회 값으로 업데이트하고 조회 필드를 삭제하고 이름을 변경했습니다. 이제 관계 및 ID가 저장된 테이블을 정기적으로 저장하고 위와 같이 연결 함수를 구현하고 SQL 연결을 사용하여 원하는대로 조회 테이블과 데이터를 결합하십시오. 감사합니다. 크리스 – Chris