OpenArgs 属性

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

适用于

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