如何在 Access 中比较两个字符串?

How do I compare two strings in Access?

我的工作是管理允许学生访问课程的虚拟学习环境 material。每个“课程”都有一个特定的 ID(下面的示例 ID)。每学年都会复制一份新的课程副本,其中包含新 ID 以及从模板中获取的相同内容和属性。

问题

正如您从下面的示例数据中看到的那样,当前课程尚未设置来宾访问 属性,这导致了问题。

到目前为止处理

我已经在 Postgres 中检索了所有 1201 和 1211 课程的完整列表,将它们导出到单独的 Excel 文件,将它们导入 Access 并创建了与课程 ID 的关系。

这是我用过的Access中的SQL

SELECT current.external_course_key, current.course_id, current.allow_guest_access
FROM [current]
    INNER JOIN past ON past.external_course_key like current.external_course_key & "*";

我认为 REGEX 会对此有所帮助,但不幸的是,Access 没有这种能力。

要求

我需要检查过去和当前课程 ID 中的来宾访问 属性,并检索存在差异的课程列表。

COURSE ID GUEST ACCESS
I3132-CHEN-10011-1201-1SE-016651 -> Last year's course Y
I3132-CHEN-10011-1211-1SE-016651 -> Current course N

希望我已经足够详细地解释了这一点。如果您需要更多,请不要犹豫。这个问题已经交给我了,是一个高优先级的问题。

感谢任何帮助。

谢谢

我不太清楚你想要什么,但我猜你想要以下内容:

SELECT Current.Course_ID, Current.allow_guest_access
FROM
   Current
INNER JOIN
   Past
ON     (Mid(Current.Course_ID, 1, 17) =  Mid(Past.Course_ID, 1, 17))
   AND (Mid(Current.Course_ID, 22, 11) =  Mid(Past.Course_ID, 22, 11))
   AND (Current.allow_guest_access <> Past.allow_guest_access)

这将提供所有当前课程,这些课程的 属性 allow_guest_access 与其等效的过去课程相比具有不同的价值。通过“等效”,我理解(从您显示的两个样本值)它们应该具有 course_id 的所有数字相同,除了四个不同的中间数字。

如果这不是你想要的,请在评论中说明,我会相应地编辑这个答案。