使用 Run 方法可以执行一个特定的 Microsoft Access 或用户定义的 Function 或 Sub 过程。Variant 型。
expression.Run(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, Arg27, Arg28, Arg29, Arg30)
expression 必需。返回“应用于”列表中的一个对象的表达式。
Procedure 必需 String 型。要运行的 Function 或 Sub 过程的名称。如果要调用其他数据库中的过程,请使用以圆点分隔项目名称和过程名称的形式:“projectname .procedurename”。如果在类库数据库中执行包含 Run 方法的 Visual Basic 代码,Microsoft Access 首先在类库数据库中查找过程,然后在当前数据库中查找。
Arg1 可选 Variant 型。
Arg2 可选 Variant 型。
Arg3 可选 Variant 型。
Arg4 可选 Variant 型。
Arg5 可选 Variant 型。
Arg6 可选 Variant 型。
Arg7 可选 Variant 型。
Arg8 可选 Variant 型。
Arg9 可选 Variant 型。
Arg10 可选 Variant 型。
Arg11 可选 Variant 型。
Arg12 可选 Variant 型。
Arg13 可选 Variant 型。
Arg14 可选 Variant 型。
Arg15 可选 Variant 型。
Arg16 可选 Variant 型。
Arg17 可选 Variant 型。
Arg18 可选 Variant 型。
Arg19 可选 Variant 型。
Arg20 可选 Variant 型。
Arg21 可选 Variant 型。
Arg22 可选 Variant 型。
Arg23 可选 Variant 型。
Arg24 可选 Variant 型。
Arg25 可选 Variant 型。
Arg26 可选 Variant 型。
Arg27 可选 Variant 型。
Arg28 可选 Variant 型。
Arg29 可选 Variant 型。
Arg30 可选 Variant 型。
当从其他应用程序中通过“自动化”(以前称为 OLE 自动化)控制 Microsoft Access 时,该方法很有用。例如,可以从 ActiveX 组件中使用 Run 方法来执行一个在某 Microsoft Access 数据库中定义过的 Sub 过程。
可以从任何其他 ActiveX 组件中设置一个对 Microsoft Access 类型库的引用,然后,在代码中使用这个库中定义的对象、方法和属性。但不能在任何非 Microsoft Access 应用程序中设置对单个 Microsoft Access 数据库的引用。
例如,假设已经在数据库中定义过一个名为 NewForm 的过程,该数据库的 ProjectName 属性设为“WizCode”。这个 NewForm 过程需要一个字符串参数。则可以从 Visual Basic 中用下面的方式调用 NewForm:
Dim appAccess As New Access.Application
appAccess.OpenCurrentDatabase ("C:\My Documents\WizCode.mdb")
appAccess.Run "WizCode.NewForm", "Some String"
如果在不同的数据库中存在名称相同的另一个过程,那么像以上示例所显示的那样,使用存在于所需过程中的数据库名称,以使 procedure 参数符合标准。
也可以使用 Run 方法来调用一个过程,而此过程存在于一个对 Microsoft Access 数据库的引用数据库中。
下面的示例从用作 Active X 组件的另一个应用程序中,运行一个存在于 Microsoft Access 数据库模块中的用户定义的 Sub 过程。
若要试用该示例,请先创建一个名为 WizCode.mdb 的新数据库,并将其 ProjectName 属性设为 WizCode。在这个数据库中打开一个新的模块并输入下列代码。保存这个模块,然后关闭数据库。
注释 通过从 VBE 主菜单中选择“工具”、“WizCode 属性...”可以设置 ProjectName。
Public Sub Greeting(ByVal strName As String)
MsgBox ("Hello, " & strName & "!"), vbInformation, "Greetings"
End Sub
完成该步骤后,就可以从 Microsoft Excel 或 Microsoft Visual Basic 中运行下列代码。请确定已经添加了对 Microsoft Access 类型库的引用(该引用可以通过单击“工具”菜单中的“引用”,然后在“引用”对话框中选择 Microsoft Access 10.0 Object Library 来获得)。
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