从Excel VBA运行访问模块

时间:2015-04-17 09:56:09

标签: excel vba excel-vba ms-access access-vba

我尝试在Access上运行此模块:

Public Sub Retriever_P(path)

DoCmd.TransferSpreadsheet acImport, 10, "Product_Details", path, True, ""

End Sub

从Excel中的此VBA代码

 Private Sub CommandButton210_Click()

Dim appAccess As Access.Application
Set appAccess = New Access.Application
Dim Target As String: Target = ThisWorkbook.Sheets("CODE").Cells(8, 4).Value
Dim path As String: path = ThisWorkbook.Sheets("CODE").Cells(5, 13).Value
appAccess.OpenCurrentDatabase Target
appAccess.Visible = True
appAccess.DoCmd.SetWarnings False
appAccess.UserControl = True
appAccess.DoCmd.OpenQuery "Clean Product_Details"
appAccess.Run "Retriever_P", path
appAccess.CloseCurrentDatabase

End Sub

但是我得到了这个错误2517,“Microsoft Access找不到程序”Retriever_P“

Excel代码是一个更大的宏的一部分,它创建一个数据库,然后将其发送给访问。 任何想法?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

我找到了解决方案:问题是子名称与模块名称相同。我不知道它必须有所不同,但我希望有人会觉得这很有用! 谢谢你们的所有答案!

答案 1 :(得分:0)

我在运行一个简单的测试时遇到了另一个问题,该测试试图在Excel过程中在空数据库(VBA代码除外)中运行Access VBA函数。没有任何其他对象(表/表单/ etc),无法找到Access VBA函数。一旦我放入名义表,从Excel VBA调用Access VBA功能就成功了。拥有一个空数据库并不是一般情况,但正如我所说,我只是在运行一个试验,看看该方法是否有效。

相关问题