Я tryng запустить этот модуль на Access:Run из Excel VBA
Public Sub Retriever_P(path)
DoCmd.TransferSpreadsheet acImport, 10, "Product_Details", path, True, ""
End Sub
Из этого VBA кода в Excel
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 является частью более крупного макроса, который создает БД, а затем отправляет его на доступ. Любые идеи?
Спасибо заранее!
Я думаю, что метод Run принимает функцию, а не Sub. Поэтому попробуйте изменить ** Retriever_P ** на функцию. Затем повторите попытку. Также убедитесь, что функция помещена в стандартный модуль не за формой. – PaulFrancis
Я пробовал, но все равно такую же ошибку! Модуль представляет собой преобразованный макрос, созданный с помощью Access 2013. Я создал макрос, а затем преобразовал его в VBA и отредактировал, поэтому он разместил его под модулями. – Jack
Это не проблема функции sub vs. Я пробовал с sub работает. Попробуйте изменить CommandButton210_Click на Private Sub CommandButton210_Click() Dim appAccess As Access.Application Установить appAccess = CreateObject ("Access.Application") appAccess.OpenCurrentDatabase ThisWorkbook.Sheets ("CODE"). Ячейки (5, 13) .Value , False appAccess.Run «Retriever_P», «PATH ...» Set appAccess = Nothing End Sub См. Ниже ссылку: https://msdn.microsoft.com/en-us/library/office/ff193559. ASPX –