使用 Run 方法可以執(zhí)行一個(gè)特定的 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 必需。返回“應(yīng)用于”列表中的一個(gè)對象的表達(dá)式。
Procedure 必需 String 型。要運(yùn)行的 Function 或 Sub 過程的名稱。如果要調(diào)用其他數(shù)據(jù)庫中的過程,請使用以圓點(diǎn)分隔項(xiàng)目名稱和過程名稱的形式:“projectname .procedurename”。如果在類庫數(shù)據(jù)庫中執(zhí)行包含 Run 方法的 Visual Basic 代碼,Microsoft Access 首先在類庫數(shù)據(jù)庫中查找過程,然后在當(dāng)前數(shù)據(jù)庫中查找。
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 型。
當(dāng)從其他應(yīng)用程序中通過“自動(dòng)化”(以前稱為 OLE 自動(dòng)化)控制 Microsoft Access 時(shí),該方法很有用。例如,可以從 ActiveX 組件中使用 Run 方法來執(zhí)行一個(gè)在某 Microsoft Access 數(shù)據(jù)庫中定義過的 Sub 過程。
可以從任何其他 ActiveX 組件中設(shè)置一個(gè)對 Microsoft Access 類型庫的引用,然后,在代碼中使用這個(gè)庫中定義的對象、方法和屬性。但不能在任何非 Microsoft Access 應(yīng)用程序中設(shè)置對單個(gè) Microsoft Access 數(shù)據(jù)庫的引用。
例如,假設(shè)已經(jīng)在數(shù)據(jù)庫中定義過一個(gè)名為 NewForm 的過程,該數(shù)據(jù)庫的 ProjectName 屬性設(shè)為“WizCode”。這個(gè) NewForm 過程需要一個(gè)字符串參數(shù)。則可以從 Visual Basic 中用下面的方式調(diào)用 NewForm:
Dim appAccess As New Access.Application
appAccess.OpenCurrentDatabase ("C:\My Documents\WizCode.mdb")
appAccess.Run "WizCode.NewForm", "Some String"
如果在不同的數(shù)據(jù)庫中存在名稱相同的另一個(gè)過程,那么像以上示例所顯示的那樣,使用存在于所需過程中的數(shù)據(jù)庫名稱,以使 procedure 參數(shù)符合標(biāo)準(zhǔn)。
也可以使用 Run 方法來調(diào)用一個(gè)過程,而此過程存在于一個(gè)對 Microsoft Access 數(shù)據(jù)庫的引用數(shù)據(jù)庫中。
下面的示例從用作 Active X 組件的另一個(gè)應(yīng)用程序中,運(yùn)行一個(gè)存在于 Microsoft Access 數(shù)據(jù)庫模塊中的用戶定義的 Sub 過程。
若要試用該示例,請先創(chuàng)建一個(gè)名為 WizCode.mdb 的新數(shù)據(jù)庫,并將其 ProjectName 屬性設(shè)為 WizCode。在這個(gè)數(shù)據(jù)庫中打開一個(gè)新的模塊并輸入下列代碼。保存這個(gè)模塊,然后關(guān)閉數(shù)據(jù)庫。
注釋 通過從 VBE 主菜單中選擇“工具”、“WizCode 屬性...”可以設(shè)置 ProjectName。
Public Sub Greeting(ByVal strName As String)
MsgBox ("Hello, " & strName & "!"), vbInformation, "Greetings"
End Sub
完成該步驟后,就可以從 Microsoft Excel 或 Microsoft Visual Basic 中運(yùn)行下列代碼。請確定已經(jīng)添加了對 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