确定由打开窗体的 OpenForm 方法的 OpenArgs 参数所指定的字符串表达式。Variant 型,可读写。
expression 必需。返回“应用于”列表中的一个对象的表达式。
该属性仅在使用宏时或在 Visual Basic 中使用 DoCmd 对象的 OpenForm 方法时才可用。该属性设置在所有视图中均具有只读属性。
若要使用 OpenArgs 属性,请使用 DoCmd 对象的 OpenForm 方法打开窗体,然后将 OpenArgs 参数设为所需的字符串表达式。OpenArgs 属性设置可以用于窗体的代码,例如 Open 事件过程中。也可以在宏中引用该属性设置,例如 Open 宏;或者在表达式中引用该属性设置,例如设置窗体中控件的 ControlSource 属性的表达式。
例如,假设打开的窗体是客户的连续窗体列表。如果希望在窗体打开时将焦点移到特定的客户记录,则可以将 OpenArgs 属性设为客户名称,然后在 Open 宏中使用 FindRecord 操作将焦点移到指定名称的客户记录。
下面的示例使用 OpenArgs 属性打开“雇员”窗体中的某一特定职员记录,并说明 OpenForm 方法如何设置 OpenArgs 属性。可以在适当的时候执行该过程,例如,当一个用于输入雇员新信息的自定义对话框的 AfterUpdate 事件发生的时候。
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