我的第一篇文章,所以我希望这是正确的领域。我目前正在尝试比较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(表))。
感谢您提供的任何帮助!
此致 砖石。
答案 0 :(得分:3)
您可以在一个查询中比较来自两个不同来源的数据。您可以在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。