我有一个表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号列表,而不是名称。我怎么能得到名字?
克里斯
答案 0 :(得分:2)
使用查找字段绝不是一个好主意:http://www.mvps.org/access/lookupfields.htm
它伪装了获得所需结果的标准方法,即使用查询将ID连接到查找表并返回描述。