获取价值而不是ID

时间:2010-06-29 20:21:20

标签: ms-access module field lookup

我有一个表tblInvestigators,其中包含一个显示名称列表的查找字段

补助金可能有超过1名调查员。

我的项目的要求是在授权详细信息旁边的单个单元格中列出所有调查员,所以我有:

授予A |名称A,名称B,名称C. 等

我有一个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号列表,而不是名称。我怎么能得到名字?

克里斯

1 个答案:

答案 0 :(得分: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