适用于
| Form 对象 |
|---|
| Report 对象 |
确定打开窗体的 OpenForm 方法的 OpenArgs 参数指定的字符串表达式。 读取/写入变量。
表达式.OpenArgs
表达 必填。 返回“适用范围”列表中的对象之一的表达式。
备注
此属性只能通过使用宏或Visual Basic for Applications (VBA) 代码和 DoCmd 对象的 OpenForm 方法使用。 此属性设置在所有视图中均为只读。
若要使用 OpenArgs 属性,请使用 DoCmd 对象的 OpenForm 方法打开窗体,并将 OpenArgs 参数设置为所需的字符串表达式。 然后,可以在表单的代码中使用 OpenArgs 属性设置,例如在 Open 事件过程中。 还可以引用宏(如 Open 宏)中的属性设置,或表达式(例如为窗体上的控件设置 ControlSource 属性的表达式)。
例如,假设打开的窗体是用于列出客户的连续窗体。 如果希望在窗体打开时焦点移动到特定的客户端记录,可以将 OpenArgs 属性设置为客户端的名称,然后使用 Open 宏中的 FindRecord 操作将焦点移动到具有指定名称的客户端的记录。
示例
以下示例使用 OpenArgs 属性打开 Employees 窗体中的特定员工记录,并演示了 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