Применение
Объект Form |
Объект Report |
Определяет строковое выражение, указываемое аргументом OpenArgs метода OpenForm, который открывает форму. Это свойство возвращает доступное для чтения и записи значение типа Variant.
выражение.OpenArgs
Выражение Обязательный. Выражение, возвращающее один из объектов в списке Применяется к.
Замечания
Это свойство можно задать только с помощью макроса или с помощью метода OpenForm объекта DoCmd в Visual Basic для приложений (VBA). Значение свойства доступно только для чтения во всех представлениях.
Чтобы использовать свойство 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
В следующем примере метод 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