小编典典

在Access VBA中具有两个记录集的查询中

sql

我在这里的第一篇文章,所以我希望这是正确的领域。我当前正在尝试比较2个记录集,其中一个来自命名范围的Excel,另一个来自Access数据库中的表。每个的代码是:

Set existingUserIDs = db.OpenRecordset("SELECT Username FROM UserData")
Set IDsToImport = exceldb.OpenRecordset("SELECT Username FROM Named_Range")

问题是我想以某种方式比较这两个记录集,而不会循环(有大量记录)。有什么办法可以对这些记录集进行联接或类似操作吗?

由于一个来自Excel,另一个来自Access,因此我无法在创建记录集之前进行联接,因此它们是两个不同的DAO数据库。

最终目标是,我将只选择要导入的访问表中不存在的用户名(因此在SQL查询中,它将是NOT IN(表))。

感谢您提供的任何协助!

问候,Bricky。


阅读 207

收藏
2021-04-07

共1个答案

小编典典

您可以在一个查询中比较来自两个不同来源的数据。您可以在SQL中使用IN关键字,或者更简单地,在Access中链接到Excel表(工作表)并围绕该关键字构建查询。

使用IN编辑示例

SELECT * FROM  CompareTable 
LEFT JOIN
   (SELECT * FROM [Sheet1$]  
    IN ''[Excel 8.0;HDR=YES;IMEX=2;DATABASE=C:\Full\Path\AndName.xls]) C
ON CompareTable.CourseKey=c.CourseKey
WHERE c.CourseKey Is Null

Sheet1 $也可以是Named_Range。

2021-04-07