(vba)是否可以将Access表中的一列数据与Excel表中的一列数据进行比较而无需打开Excel文档?

我想知道是否有一种方法(使用Access VBA)检查Excel工作表中的date列(只有一个工作表),而不打开文件本身,然后将其与Access表中date列进行比较。

澄清:我为我的术语的模糊性而道歉。 当我说“没有打开excel文件”时,我指的是从excel文件中获取信息的行为,而用户从未看到它在屏幕或任务栏上popup。

澄清2:为了消除任何混淆,使用VBA来实现这一点是首选,但肯定不是必需的。 Accessmacros和SQL(提供了从VBA部署的)等等,我也很好。 只要它可以直接从Access运行。

额外的信息:两个实例中的date应该始终是相同的顺序。 我唯一关心的是a。)不必打开excel文档,b。)检查两个数据源的数据是否相同。 即如果它们完全相同则为真,即使有一点差异也是假的。

虽然你可能不会自己编写代码来打开文件,但是我相信这个文件会被可能的方法打开以便读取。

在我看来,将Excel数据与MS Access进行比较最简单的方法是创build一个链接表到表格,然后使用sql查询进行比较。

我可能会在每个表/ excelTable的末尾计算一列,每个字段都用pipe道“|”连接起来。 并比较这个“关键”。

注意:当你打开链接表时,文件在后台打开。

实际上,您不需要VBA,但可以连接到Excel工作簿(甚至是Access SQL查询中的csv / txt文件)。 下面假设Excel数据维护从单元格A1开始的列标题。

 SELECT acc.*, xl.* FROM myAccessTable acc INNER JOIN [Excel 12.0 Xml;HDR=Yes;Database=C:\Path\To\Workbook.xlsx].[SHEEETNAME$] xl ON acc.[DateColumn] = xl.[DateColumn];