使用 VBA 将 Access 查询链接到 Excel [重复]

Posted

技术标签:

【中文标题】使用 VBA 将 Access 查询链接到 Excel [重复]【英文标题】:Link Access query to Excel using VBA [duplicate] 【发布时间】:2021-10-11 09:33:33 【问题描述】:

我正在尝试创建从 Access 查询到特定 Excel 表的链接。

但是,当我运行代码时,我得到一个运行时错误 424 Object required,调试显示 fileToOpen 确实显示了正确的数据库,但是当我将鼠标悬停在 acQuery 上时,它显示 acQuery = Empty。

我已经检查了几次查询名称,应该都是正确的。

Public Function ImportAccess()

Dim fileToOpen As Variant
Dim fileFilterPattern As String

fileFilterPattern = "Access Files (*.mdb*),*mdb*"

fileToOpen = Application.GetOpenFilename(fileFilterPattern)

If fileToOpen = False Then
        ' Input cancelled
MsgBox "No file selected."
Else

DoCmd.TransferDatabase acLink, "Microsoft Access", fileToOpen, acQuery, "Query", "ExcelSheet", True

End If

End Function

在 Excel 中,我们根据 Access 查询中创建的信息对管道直径和流量进行计算。 基本上我想要“ExcelSheet”表上显示的 Access 数据,所以我可以在工作簿中的其他表上的 Excel 中运行计算(因此来自 Access 的数据不会在 Excel 中编辑)。我想链接它的原因是我不必在每次对 AccessDatabase 进行更改时都导入数据。

【问题讨论】:

您没有将 Access 查询链接到电子表格。这不是它的工作原理。访问工作表的链接,链接的工作表被视为表格,除了不能编辑数据。然后您可以构建一个使用链接表作为源的查询对象。如果您希望 Access 链接到 Excel,为什么要打开 Access 对象?如果您希望 Access 链接到 Excel,则应在 FileName 参数中引用 Excel 文件路径/名称。 如果此代码在 Excel 中运行,则没有 DoCmd.TransferDatabase。对我来说不清楚:您想在 Access 中查看 Excel 表还是在 Excel 中查看 Access 表? @Ike 我想在 Excel 中查看我的 Access Query 数据,以便我可以在 Excel 中运行 som 计算。我想链接数据的原因是每次访问数据库发生更改时我都不必重新导入。 Access 数据库包含有关管道直径、坡度等的信息。然后 Excel 表根据该信息和其他信息计算流量。代码是从 Excel 运行的,所以也许 TransferDatabase 是错误的? 如果您希望将数据从 Access 传输到常设 Excel 工作簿,请让 Excel 建立连接。使用数据选项卡工具是一种方法。另一个是 VBA 建立连接,打开记录集并运行 CopyFromRecordset 命令将数据放在工作表上。 @June7 这基本上就是我想要的,但我只想用一个按钮来做一次,你只需选择你的数据库位置 (VBA) 来帮助其他不精通技术的用户,然后再使用它应该是动态链接。但这似乎是不可能的? 【参考方案1】:

您的DoCmd 模块未在此处记录。也不是子/功能TransferDatabase 我们可以假设它需要与 Access 的连接才能实现它的“黑魔法”。 由于我们不知道您从哪里获得代码或示例,因此我们无法调查水晶球并给您答案。

我们可以告诉您在哪里可以找到有关如何将 Excel 连接到 Access 的信息:How to query a MS-Access Table from MS-Excel (2010) using VBA

我们只能假设您的功能所需的连接类型相同。

【讨论】:

以上是关于使用 VBA 将 Access 查询链接到 Excel [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 jpg BLOB 从 Access 365 查询传递到 VBA 函数的问题

使用 vba 将 MS Access 查询输出到 Excel

使用 VBA 或 PowerShell 将所有 MS Access SQL 查询导出到文本文件

VBA/SQL ACCESS:将查询结果复制到其他访问数据库中的表

使用 VBA 在 Access 中重新查询子表

如何创建将传递查询导出为 XML 文件的 VBA 函数(用于 Access 2010)?