使用具有 2 个/多个内部连接子语句的 VBA 记录集更新 MS 访问 table

Update MS access table using VBA recordset with 2/more inner join sub statements

我有 3 个表在访问中 - tblUsers、tblAssignnent 和 tblJob。 tblJob 是在 VBA 中使用一系列计算的地方,我到达了将由我的质量 (QC) 团队处理的数据转储。 tblUsers 有我们所有员工的列表以及他们在全球的位置。 tblAssignnent 定义了哪个 QC 团队分析师将处理我们全球员工处理的哪个案例。例如。 QCID 123 需要处理我们在中国的员工处理的所有 3 级案例。因此,VBA 必须将 QCID 123 分配给所有在中国工作过 3 级的行。我们有大约 20 个这样的 QC ID,平均每天工作 1000 个案例。

同样,这里的问题是 tblUsers 定义了每个员工的姓名和位置 - tblAssignnent 定义了每个员工的位置和级别以及预期工作的 QC ID。 tblJob 具有员工姓名和级别。查看下面的截图,

tblUsers
NAME        LOCATION    
Mathew      Shanghai
John        New York
Peter       Dubai

tblAssignnent
QCID        LEVEL       LOCATION
123         L3          Shanghai
135         L1          New York

tblJob
QCID        LEVEL       NAME        CASEID
            L3          Mathew      001283526
            L1          John        827271729

所以基本上我需要使用 VBA 在 tblJob 中将 QCID 更新为 123 和 135。我尝试在一个记录集中进行 INNER JOIN,但我不断收到错误。在搜索中,显然 VBA 记录集可能无法保存复杂的语句。请原谅我糟糕的格式,因为我现在只能访问我的 phone。我对这段代码的所有尝试都失败了,我将非常感谢任何扩展的帮助。

我随时听候您的进一步说明。

我想我之前可能看错了。如果您只需要将 QCID 添加到 table 作业中,那非常简单:

UPDATE (tblJob 
INNER JOIN tblAssignment ON tblJob.LEVEL = tblAssignment.LEVEL) 
INNER JOIN tblUsers ON (tblUsers.Location = tblAssignment.Location) 
AND (tblJob.EName = tblUsers.EName) 
SET tblJob.QCID = tblAssignment.QCID