繁体   English   中英

使用带有2个或多个内部联接子语句的VBA记录集更新MS访问表

[英]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中使用123和135更新QCID。 我尝试在记录集中进行INNER JOIN,但我一直收到错误消息。 在搜索时,显然VBA记录集可能无法保存复杂的语句。 原谅我格式不佳,因为我现在只能使用手机。 我在此代码上所做的所有尝试均以失败告终,我将非常乐意提供任何扩展帮助。

我随时供您进一步澄清。

我想我可能早些看错了。 如果只需要将QCID添加到表Job中,则它非常简单:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM