全部显示

OpenArgs 属性

       

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

expression.OpenArgs

expression   必需。返回“Applies To”列表中的一个对象的表达式。

说明

该属性仅在使用时或在 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