MS Access查询:查找每位员工未上传附件的必填DQ_File表单
问题根因
你当前的查询存在两个核心错误:
- 表关联条件缺失:
RIGHT JOIN仅关联了员工编号字段,没有关联文档标识字段,导致员工的所有必填文档行都会匹配到该员工在DQ_File表的所有记录,无法对应到单份具体文档的提交状态。 - 附件存在性判断逻辑错误:直接在
WHERE子句中判断Attachment.FileURL为空,没有区分「无对应DQ_File提交记录」和「有提交记录但无附件」两种场景,同时SharePoint附件字段用FileCount属性判断附件存在性比FileURL更稳定。
修复方案
首先修改JOIN关联条件,追加文档描述字段的匹配(如果你的DQ_File表关联DQ_File_Lookup的字段不是Description,替换成你实际的关联字段即可),再调整附件存在性的判断逻辑,修正后的SQL参考如下:
SELECT [qryEmployees+DQFileLookup].Last, [qryEmployees+DQFileLookup].Description, DQ_File.Attachment FROM DQ_File RIGHT JOIN [qryEmployees+DQFileLookup] ON (DQ_File.Description = [qryEmployees+DQFileLookup].Description) AND (DQ_File.EmployeeNo = [qryEmployees+DQFileLookup].EmployeeCode) WHERE [qryEmployees+DQFileLookup].CURRENT = True AND [qryEmployees+DQFileLookup].DRIVER = True AND [qryEmployees+DQFileLookup].DQRequired = True AND (DQ_File.ID IS NULL OR DQ_File.Attachment.FileCount = 0);
验证说明
修改后查询会先匹配每个员工对应每份必填文档的提交记录,再筛选出「没有提交记录」或「提交了记录但附件数量为0」的条目,就能得到准确的缺失必填表单列表。
内容的提问来源于stack exchange,提问作者Andrew Clark
相关产品推荐
相关产品推荐

