確定由打開窗體的 OpenForm 方法的 OpenArgs 參數(shù)所指定的字符串表達(dá)式。Variant 型,可讀寫。
expression 必需。返回“應(yīng)用于”列表中的一個對象的表達(dá)式。
該屬性僅在使用宏時或在 Visual Basic 中使用 DoCmd 對象的 OpenForm 方法時才可用。該屬性設(shè)置在所有視圖中均具有只讀屬性。
若要使用 OpenArgs 屬性,請使用 DoCmd 對象的 OpenForm 方法打開窗體,然后將 OpenArgs 參數(shù)設(shè)為所需的字符串表達(dá)式。OpenArgs 屬性設(shè)置可以用于窗體的代碼,例如 Open 事件過程中。也可以在宏中引用該屬性設(shè)置,例如 Open 宏;或者在表達(dá)式中引用該屬性設(shè)置,例如設(shè)置窗體中控件的 ControlSource 屬性的表達(dá)式。
例如,假設(shè)打開的窗體是客戶的連續(xù)窗體列表。如果希望在窗體打開時將焦點(diǎn)移到特定的客戶記錄,則可以將 OpenArgs 屬性設(shè)為客戶名稱,然后在 Open 宏中使用 FindRecord 操作將焦點(diǎn)移到指定名稱的客戶記錄。
下面的示例使用 OpenArgs 屬性打開“雇員”窗體中的某一特定職員記錄,并說明 OpenForm 方法如何設(shè)置 OpenArgs 屬性??梢栽谶m當(dāng)?shù)臅r候執(zhí)行該過程,例如,當(dāng)一個用于輸入雇員新信息的自定義對話框的 AfterUpdate 事件發(fā)生的時候。
Sub OpenToCallahan()
DoCmd.OpenForm "Employees", acNormal, , , acReadOnly, _
, "Callahan"
End Sub
Sub Form_Open(Cancel As Integer)
Dim strEmployeeName As String
' If OpenArgs property contains employee name, find
' corresponding employee record and display it on form. For
' example,if the OpenArgs property contains "Callahan",
' move to first "Callahan" record.
strEmployeeName = Forms!Employees.OpenArgs
If Len(strEmployeeName) > 0 Then
DoCmd.GoToControl "LastName"
DoCmd.FindRecord strEmployeeName, , True, , True, , True
End If
End Sub
下一示例使用 FindFirst 方法查找 OpenArgs 屬性中指定的雇員名稱。
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Dim strEmployeeName As String
strEmployeeName = Me.OpenArgs
Dim RS As DAO.Recordset
Set RS = Me.RecordsetClone
RS.FindFirst "LastName = '" & strEmployeeName & "'"
If Not RS.NoMatch Then
Me.Bookmark = RS.Bookmark
End If
End If
End Sub