OpenArgs 属性

expandtri全部显示

确定由打开窗体的 OpenForm 方法的 OpenArgs 参数所指定的字符串表达式Variant 型,可读写。

expression.OpenArgs

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