【问题标题】:Need help understanding the WHERE argument of Allen Browne's ConcatRelated function in MS Access需要帮助理解 MS Access 中 Allen Browne 的 ConcatRelated 函数的 WHERE 参数
【发布时间】: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


    【解决方案1】:

    运行它,它应该消除欺骗:

    SELECT DISTINCT qryClassInstructor.CourseID, qryClassInstructor.AcadTerm, ConcatRelated("InstructorID","qryClassInstructor","ClassID = " & [ClassID],"CourseID","; ") AS [Instructor(s)] FROM qryClassInstructor;

    DISTINCT 运算符强制 Access 根据您在 SELECT 语句中选择的字段消除欺骗。

    【讨论】:

    • 关于这个的另一个快速问题。当我试图扭转这一点以向教师展示他们正在教授的串联课程时,我最终会在同一学期(“数学 100,数学 100”)而不是(数学 100,数学 109)中多次串联相同的课程)。
    • 这是 SQL:SELECT DISTINCT qryClassInstructor.InstructorID, qryClassInstructor.AcadTerm, ConcatRelated("CourseCatID","qryClassInstructor","ClassID = " & [ClassID],"CourseCatID"," / ") AS Courses FROM qryClassInstructor WHERE (((qryClassInstructor.InstructorID)"IsNull")) ORDER BY qryClassInstructor.InstructorID;
    • 抱歉,我对那个函数或它的作用一无所知,所以我不知道为什么它在一种情况下有效,而在另一种情况下无效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多