Применение
Объект 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