【发布时间】:2025-12-20 05:50:11
【问题描述】:
我有一个将数据写入 Access 数据库的 excel 程序。在这个数据库中,我有一个宏,它在运行时会将数据复制到另一个 Excel 文件中。我想编辑原始的 excel 程序,以便在将数据写入 Access 数据库后,它会自动运行宏。现在,我将其设置为将数据写入数据库,然后打开数据库,运行宏,然后关闭数据库——这似乎有点低效。这是access数据库中的宏:
Sub copy()
Dim strTable As String
Dim strWorksheetPath As String
strWorksheetPath = "FilePath" & "test.xlsx"
strTable = "test"
DoCmd.OutputTo acOutputTable, strTable, acFormatXLSX, strWorksheetPath
End Sub
程序中的相关代码只是打开数据库,调用宏并关闭它。如果有办法解决这个问题,根本不需要打开数据库,那就太好了。谢谢。
即为了清楚起见,我正在寻找一种在 excel 中模仿上述代码的方法,这样我就不需要打开 access 数据库,即以某种方式将数据从 access 传输到 excel 工作簿,而不使用访问 VBA。
【问题讨论】:
-
除非数据库在 Access 会话中打开,否则您无法运行 Access 数据库中包含的代码。
-
有什么方法可以在不打开访问权限的情况下从访问权限中复制代码? IE。用Excel-VBA代码来模仿上面的代码?
-
不,连接很好 - 但我正在寻找一种无需打开 Access 的方法。我已按要求编辑了我的帖子。
-
你能编辑你的问题和描述吗?听起来您想要一种从 Access 数据库中提取数据的方法, 打开数据库并从 Access 运行宏。在那一点上:google for "excel vba adodb.connection access database" 看看结果如何,您应该能够使用 ADODB 在不打开访问权限的情况下读取数据库。
-
或者,在另一个 Excel 文件中,您可以创建与现有数据库表的连接,请参阅here。这将避免对 Access 宏的需要,而且您很可能也不需要将该宏“转换”为 Excel VBA。