适用于
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