Поделиться через


Свойство Form.OpenArgs (Access)

Определяет строковое выражение, заданное аргументом OpenArgs метода OpenForm , открывшего форму. Для чтения и записи, Variant.

Синтаксис

expression. OpenArgs

выражение: переменная, представляющая объект Form.

Замечания

Это свойство доступно только с помощью макроса или с помощью Visual Basic с методом OpenForm объекта DoCmd . Этот параметр свойства доступен только для чтения во всех представлениях.

Чтобы использовать свойство OpenArgs , откройте форму с помощью метода OpenForm объекта DoCmd и задайте для аргумента OpenArgs требуемое строковое выражение. Затем параметр свойства OpenArgs можно использовать в коде формы, например в процедуре события Open . Вы также можете ссылаться на параметр свойства в макросе, например макрос Open , или выражение, например выражение, которое задает свойство ControlSource для элемента управления в форме.

Предположим, что вы открываете ленточную форму со списком клиентов. Если вы хотите, чтобы фокус перемещался на определенную запись клиента при открытии формы, можно задать для свойства OpenArgs имя клиента, а затем использовать действие НайтиЗапись в макросе Открыть, чтобы переместить фокус на запись клиента с указанным именем.

Пример

В следующем примере свойство 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

В приведенном ниже примере показано, как использовать свойство OpenArgs для предотвращения открытия формы из области навигации.

Private Sub Form_Open(Cancel As Integer)

If Me.OpenArgs() <> "Valid User" Then
    MsgBox "You are not authorized to use this form!", _
        vbExclamation + vbOKOnly, "Invalid Access"
    Cancel = True
End If
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.