【发布时间】:2014-04-26 13:40:11
【问题描述】:
我有一个查询 (qryClassInstructor),它显示了在给定学期教授的课程及其教师:
选择 tblClasses.ClassID、tblClasses.SubjAreaID、 tblClasses.CourseID,tblClasses.AcadTerm, tblInstructors.InstructorID FROM tblInstructors 右连接(tblClasses 左连接 tblClassInstructor ON tblClasses.ClassID = tblClassInstructor.ClassID) ON tblInstructors.InstructorID = tblClassInstructor.InstructorID;
由于某些课程有多个讲师,因此此查询返回给定课程的多行,每行显示一位讲师。
1,数学,100,2015SP,史密斯,J.
1,数学,100,2015SP, 三月,A。
我想创建一个连接这些讲师的字段,因此我使用了 Allen Browne 的 ConcatRelated 函数。这是我正在使用的 SQL:
选择 qryClassInstructor.CourseID、qryClassInstructor.AcadTerm、 ConcatRelated("InstructorID","qryClassInstructor","ClassID = " & [ClassID],"CourseID",";") AS [Instructor(s)] FROM qryClassInstructor;
这通常有效(发生串联),但对于任何有多名教师的课程,我仍然会得到多行。
1,数学,100,2015SP,史密斯,J.;三月,A。
1,数学,100,2015SP,史密斯,J.;三月,A。
老实说,我真的不理解函数的 WHERE 参数部分(VBA 的新手),所以如果这是我的问题,我希望能得到一些帮助。
我知道其他人也询问过这个函数,但我还没有看到 WHERE 参数得到很好的解释,希望能深入了解它。另外,我们的 InstructorID 字段使用逗号和句点(例如,“Smith, J.”)是否存在问题?提前感谢您的帮助!
【问题讨论】:
标签: sql vba ms-access concatenation