Поделиться через


Метод Application.Run (Access)

Используйте метод Run для выполнения указанной процедуры Microsoft Access или определяемой пользователем функции или sub . Variant.

Синтаксис

expression. Выполнение (Procedure, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg26 , Arg27, Arg28, Arg29, Arg30)

выражение: переменная, представляющая объект Application.

Параметры

Имя Обязательный или необязательный Тип данных Описание
Процедура Обязательный String Имя выполняемой процедуры Function или Sub . Если вы вызываете процедуру в другой базе данных, используйте имя проекта и имя процедуры, разделенные точкой в форме " projectname. procedurename"

При выполнении кода Visual Basic, содержащего метод Run , в базе данных библиотеки Access ищет процедуру сначала в базе данных библиотеки, а затем в текущей базе данных.
Arg1, Arg2, ... Arg30 Необязательный Variant Аргументы, которые должны быть переданы в функцию или sub , указанную в аргументе Procedure .

Возвращаемое значение

Variant

Примечания

Этот метод полезен при управлении Доступом Майкрософт из другого приложения с помощью службы автоматизации, ранее называемой OLE-автоматизацией. Например, можно использовать метод Run из компонента ActiveX для выполнения процедуры Sub , определенной в базе данных Access.

Вы можете задать ссылку на библиотеку типов Access из любого другого компонента ActiveX и использовать в коде объекты, методы и свойства, определенные в этой библиотеке. Однако нельзя задать ссылку на отдельную базу данных Access из любого приложения, кроме Access.

Например, предположим, что вы определили процедуру с именем NewForm в базе данных, для свойства ProjectName задано значение "WizCode". Процедура NewForm принимает строковый аргумент. Вызов NewForm из Visual Basic можно вызвать следующим образом:

Dim appAccess As New Access.Application 
appAccess.OpenCurrentDatabase ("C:\My Documents\WizCode.mdb") 
appAccess.Run "WizCode.NewForm", "Some String"

Если другая процедура с тем же именем может находиться в другой базе данных, укажите аргумент процедуры , как показано в предыдущем примере, именем базы данных, в которой находится требуемая процедура.

Метод Run также можно использовать для вызова процедуры в указанной базе данных Access из другой базы данных.

Пример

В следующем примере выполняется определяемая пользователем процедура Sub в модуле в базе данных Access из другого приложения, которое выступает в качестве компонента Active X.

Чтобы попробовать этот пример, создайте новую базу данных с именем WizCode.mdb и задайте для свойства ProjectName значение WizCode. Откройте новый модуль в этой базе данных и введите следующий код. Сохраните модуль и закройте базу данных.

Примечание.

Чтобы задать projectName, выберите СервисWizCode Properties (Свойства WizCode)> в главном меню VBE.

Public Sub Greeting(ByVal strName As String) 
 MsgBox ("Hello, " & strName & "!"), vbInformation, "Greetings" 
End Sub

Выполнив этот шаг, выполните следующий код из Microsoft Excel или Visual Basic. Убедитесь, что вы добавили ссылку на библиотеку типов Access, выбрав Ссылки в меню Сервис и выбрав Microsoft Access 12.0 Object Library (Библиотека объектов Microsoft Access 12.0 ) в диалоговом окне Ссылки .

Private Sub RunAccessSub() 
 
 Dim appAccess As Access.Application 
 
 ' Create instance of Access Application object. 
 Set appAccess = CreateObject("Access.Application") 
 
 ' Open WizCode database in Microsoft Access window. 
 appAccess.OpenCurrentDatabase "C:\My Documents\WizCode.mdb", False 
 
 ' Run Sub procedure. 
 appAccess.Run "Greeting", "Joe" 
 Set appAccess = Nothing 
 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.