(vba)是否可以在不打开Excel文档的情况下将Access表中的一列数据与Excel表中的一列数据进行比较?

(vba)是否可以在不打开Excel文档的情况下将Access表中的一列数据与Excel表中的一列数据进行比较?,excel,vba,ms-access,compare,Excel,Vba,Ms Access,Compare,我想知道是否有一种方法(使用Access VBA)可以在不打开文件本身的情况下检查Excel工作表中的一列日期(只有一个工作表),然后将其与Access表中的一列日期进行比较 澄清:很抱歉我的术语含糊不清。当我说“不打开excel文件”时,我指的是从excel文件中获取信息的行为,而用户从未看到它在屏幕或任务栏上弹出 澄清2:为了澄清任何混淆,最好使用VBA来实现这一点,但肯定不是必需的。我还可以使用Access宏、SQL(只要它是从VBA部署的)和其他东西。任何内容,只要它可以直接从Acces

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

澄清:很抱歉我的术语含糊不清。当我说“不打开excel文件”时,我指的是从excel文件中获取信息的行为,而用户从未看到它在屏幕或任务栏上弹出

澄清2:为了澄清任何混淆,最好使用VBA来实现这一点,但肯定不是必需的。我还可以使用Access宏、SQL(只要它是从VBA部署的)和其他东西。任何内容,只要它可以直接从Access运行

额外信息:
两种情况下的日期顺序应始终相同。我唯一关心的是a.)不必打开excel文档,b.)检查两个来源的数据是否相同。i、 e.如果它们完全相同,则为true;如果存在一点细微的差异,则为false。

虽然您可能不会自己编写代码来打开文件,但我相信文件将通过可能的方法打开,以便读取

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

我可能会在每个表/excelTable的末尾创建一个计算列,每个字段都连接一个管道“|”,然后比较这个“键”


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

虽然您可能不会自己编写代码来打开文件,但我相信文件将通过可能的方法打开,以便读取

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

我可能会在每个表/excelTable的末尾创建一个计算列,每个字段都连接一个管道“|”,然后比较这个“键”


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

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

选择acc.*,xl*
来自myAccessTable acc
内连接
[Excel 12.0 Xml;HDR=Yes;数据库=C:\Path\To\Workbook.xlsx]。[SHEEETNAME$]xl
在acc上[DateColumn]=xl[DateColumn];

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

选择acc.*,xl*
来自myAccessTable acc
内连接
[Excel 12.0 Xml;HDR=Yes;数据库=C:\Path\To\Workbook.xlsx]。[SHEEETNAME$]xl
在acc上[DateColumn]=xl[DateColumn];

您打算如何在不以某种方式“打开”某个文件的情况下读取某个磁盘驱动器上的内容。(我想这取决于你所说的“打开”是什么意思。也就是说,你的意思是答案必须排除
工作簿.open
语句?还是你只想排除用户可以看到的文件打开?或者你真的是指决不能以任何方式打开文件,因此文件的内容不能被代码检查?)。我的意思是我不希望它对用户可见。抱歉,在我昨晚发布后几个小时,我意识到这可能会让人困惑。我真正的意思是在后台打开它,而不向用户显示excel窗口。另一个问题是。。。为什么必须是VBA,而答案不应建议更好的方法?我真的认为你问题的第一句话应该被删除(因为已经有两个好的答案不需要VBA[尽管这两个答案都可以很容易地与附加的VBA“包装器”一起使用,只是为了满足限制])或扩展以指示为什么必须存在该限制,以及VBA代码允许/不允许做什么(例如,是否允许使用Parfait建议的简单查询的最小包装)。也许我应该进一步澄清。我道歉。我不是说VBA是唯一可以使用的工具。我只是认为这是最灵活的。如果它涉及一个宏或一些可以从VBA运行的SQL编码,我也同意。实际上,只要任务可以从Access直接自动运行,任何事情都是可以接受的。我的帖子中最重要的信息只是为了避开那些可能会说“只需将excel数据导入access”或“复制粘贴”之类的话的人。我建议你改写你的问题,去掉第一句话。而且,为了摆脱“过于宽泛”的束缚,也许要弄清楚你的问题是什么——你是在试图弄清楚如何在用户看不到Excel打开的情况下访问Excel电子表格的内容吗?或者,一旦您访问了工作表的内容,如何比较这两组信息(Excel-v-access)以查看是否存在差异?(如果这两个问题都存在,我建议您将问题缩小到如何访问电子表格,然后创建另一个如何比较的问题。)您打算如何在不以某种方式“打开”该文件的情况下读取磁盘驱动器上的内容。(我想这取决于你所说的“打开”是什么意思。也就是说,你的意思是答案必须排除
工作簿.open
语句?还是你只想排除用户可以看到的文件打开?或者你真的是指决不能以任何方式打开文件,因此文件的内容不能被代码检查?)。我的意思是我不希望它对用户可见。对不起,我意识到这可能会让人困惑