当前位置: 首页 > 面试题库 >

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

闾丘炫明
2023-03-14
问题内容

我在这里的第一篇文章,所以我希望这是正确的领域。我当前正在尝试比较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。


问题答案:

您可以在一个查询中比较来自两个不同来源的数据。您可以在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。



 类似资料:
  • 应答表 HTTP状态500-请求处理失败;嵌套异常为org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:,靠近第1行,第38列[DELETE com.online.test.model.question,Answer FROM com.online.test.model.question que LEFT JOIN Answer ans

  • 问题内容: 我可以在mysql数据库上打开审核日志记录吗? 我基本上想监视所有查询一个小时,并将日志转储到文件中。 问题答案: 使用–log选项启动mysql: 或在文件中放置以下内容: 任何一种都将所有查询记录到log_file_name。 您也可以使用选项代替来仅记录慢速查询。默认情况下,花费10秒或更长时间的查询被认为是缓慢的,您可以通过设置查询在记录之前必须执行的秒数来更改它。

  • 问题内容: 我正在使用SQL Server 2008。 下面是一个示例记录集。 我想每次更改“值”时都要查询一次。例如,我想要第1、9、14、26、28、37和50行。 我曾尝试使用SELECT DISTINCT,但这不起作用,因为“值”列具有重复的值(即第1行和第14行)。 我已经搜索了一段时间,但没有找到解决方案。如果您有一个,请告诉我!谢谢! 问题答案: 在最新版本的SQL Server中,

  • 问题内容: 我有下表: 如何在每个“班级”中找到最大“分数”的“名称”? 要求的输出: 这是针对MySQL的。 问题答案:

  • 我有两张桌子: 我需要从表1中选择记录,其中Value1或Value2不同于表1\u中用相同的键1、键2和键3详细描述的值1和/或值2的总和。此外,我还需要表之间的值差,例如,上面我需要查询返回: 我尝试了很多方法来解决这个问题,但我错过了一些东西,我将非常感谢任何帮助。