我尝试在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代码是一个更大的宏的一部分,它创建一个数据库,然后将其发送给访问。 任何想法?
提前谢谢!
答案 0 :(得分:1)
我找到了解决方案:问题是子名称与模块名称相同。我不知道它必须有所不同,但我希望有人会觉得这很有用! 谢谢你们的所有答案!
答案 1 :(得分:0)
我在运行一个简单的测试时遇到了另一个问题,该测试试图在Excel过程中在空数据库(VBA代码除外)中运行Access VBA函数。没有任何其他对象(表/表单/ etc),无法找到Access VBA函数。一旦我放入名义表,从Excel VBA调用Access VBA功能就成功了。拥有一个空数据库并不是一般情况,但正如我所说,我只是在运行一个试验,看看该方法是否有效。