从Excel 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代码是一个更大的macros的一部分,创build一个数据库,然后将其发送到访问。 有任何想法吗?

先谢谢你!

我find了解决方法:问题是子名称与模块名称相同。 我不知道它有什么不同,但我希望有人会觉得这有用! 感谢所有的答案家伙!

在运行一个简单的testing时,我遇到了另一个问题,试图从Excel过程中的空数据库(VBA代码除外)中运行Access VBA函数。 没有任何其他对象(表/表格/等),无法find访问VBAfunction。 一旦我放入一个名义表格,从Excel VBA调用Access VBA函数就成功了。 不是通常情况下有一个空的数据库,但正如我所说,我只是运行一个试验,看看方法是否工作。