Access

Vba access открыть форму: Метод DoCmd.OpenForm (Access) | Microsoft Learn

Макрокоманда «ОткрытьФорму» — Служба поддержки Майкрософт

Макрос «ОткрытьФорму» в Access можно использовать для открытия форма в представление формы, Конструктор, предварительного просмотра или Режим таблицы. Вы можете выбрать режимы ввода данных и окна для формы и ограничить отображаемую в форме запись.

Примечание: Макрокоманда «ОткрытьФорму» недоступна в веб-приложениях Access.

Настройка

Аргументы макрокоманды ОткрытьФорму описаны ниже.

Аргумент макрокоманды

Описание

Имя формы

Имя формы, которую нужно открыть. В раскрывающемся списке Имя формы указаны все формы текущей базы данных. Это обязательный аргумент.

При выполнении в база данных библиотеки макроса, содержащего макрокоманду ОткрытьФорму, Access ищет форму с этим именем сначала в базе данных библиотеки, а затем в текущей базе данных.

Режим

Представление, в котором будет открываться форма. Выберите в поле Режим значение Форма, Конструктор, Предварительный просмотр, Таблица, Сводная таблица или Сводная диаграмма. По умолчанию используется Форма.

Примечание: Представления сводной таблицы и сводной диаграммы были удалены из Access, начиная с Access 2013.

Примечание: Значение аргумента Режим переопределяет параметры свойств формы DefaultView и ViewsAllowed. Например, даже если свойству формы ViewsAllowed присвоено значение Таблица, можно использовать макрокоманду ОткрытьФорму для открытия формы в представлении формы.

Имя фильтра

A фильтр, которая ограничивает или сортет записи формы. Вы можете ввести имя существующего запрос или фильтра, сохраненного в качестве запроса. Однако запрос должен включать все поля открываемой формы или свойство OutputAllFields должно иметь для него

да.

Условие отбора

Допустимое предложение WHERE SQL (без слова WHERE) или выражение, которое Access использует для выбора записей из базовой таблицы или запроса формы. Если выбрать фильтр с аргументом Имя фильтра, Access применит это предложение WHERE к результатам фильтрации.

Для открытия формы и ограничения записей в ней на основе значения элемента управления, находящегося в другой форме, используйте следующее выражение:

[ имя_поля ] = Forms![ имя_формы

]![ имя_элемента_управления _в_другой_форме ]

Замените имя_поля именем поля базовой таблицы или запроса формы, которую вы хотите открыть. Замените имя_формы и имя_элемента_управления_в_другой_форме именем другой формы и именем элемента управления, содержащего значение, которому должны соответствовать записи в первой форме.

Примечание: Максимальная длина аргумента Условие отбора равна 255 символам. Если необходимо ввести более сложное и длинное предложение WHERE, вместо этого используйте метод ОткрытьФорму объекта DoCmd в модуле Visual Basic для приложений (VBA). VBA позволяет вводить предложения WHERE SQL длиной до 32 768 символов.

Режим данных

Режим ввода данных для формы. Применим только для форм, открытых в режиме формы или таблицы. Возможные варианты значений: Добавление (пользователь может добавлять новые записи, но не может редактировать существующие), Изменение (пользователь может редактировать существующие записи и добавлять новые) или Только чтение (пользователь может только просматривать записи).

Примечания

  • Значение аргумента Режим данных переопределяет значение свойств формы AllowEdits, AllowDeletions, AllowAdditions и DataEntry. Например, даже если свойство формы AllowEdits имеет значение Нет, можно открыть форму в режиме редактирования с помощью макрокоманды ОткрытьФорму.

  • Если этот аргумент оставить пустым, то Access откроет форму в режиме ввода данных, определяемом свойствами AllowEdits, AllowDeletions, AllowAdditions и DataEntry.

Режим окна

Режим окна, в котором открывается форма.

Возможные значения: Обычное (форма открывается в режиме, определяемом ее свойствами), Скрытое (форма скрыта), Значок (форма свертывается и отображается в виде небольшого заголовка окна в нижней части экрана) или Диалоговое окно (для свойств Modal и PopUp формы задается значение Да). По умолчанию используется значение Обычное.

Примечание: Некоторые значения аргумента Режим окна неприменимы, если используются документы со вкладками. Чтобы переключиться в режим перекрывания окон:

  1. Откройте вкладку Файл и выберите пункт Параметры

  2. В диалоговом окне Параметры Access щелкните элемент Текущая база данных.

  3. В разделе Параметры приложений в группе Параметры окна документа выберите параметр Перекрывание окон.

  4. Нажмите кнопку ОК, а затем закройте и снова откройте базу данных.

Замечания

Эта макрокоманда аналогична двойному щелчку формы в области навигации или ее щелчку правой кнопкой мыши в области навигации и выбору представления.

Форму можно модальный (для выполнения каких-либо других действий она должна быть закрыта или скрыта) или неавной (пользователь может перемещаться в другие окна, пока форма открыта). Это также может быть форма всплывающая форма (форма для сбора и отображения информации, которая остается на верхней части всех других окон Access). Свойства Modal (Модальная форма) и PopUp (Всплывающее всплыв Если для аргумента «Режим окна» используется «Обычный», форма открывается в режиме, заданном этими свойствами. Если для аргумента «Режим окна» используется диалоговое окно, для этих свойств будет установлено «Да». Форма, открываемая как скрытая или в виде значка, возвращается в режим, заданный ее свойствами при ее от показе или восстановлении.

При открытии формы с аргументом

Режим окна, имеющим значение Диалоговое окно, Access приостанавливает работу макроса, пока форма не будет закрыта или скрыта. Форму можно скрыть, установив с помощью макрокоманды ЗадатьЗначение значение Нет для ее свойства Visible.

Применяемые фильтр и условие WHERE становятся значением свойства Filter формы.

Совет: Вы можете выбрать форму в области навигации и перетащить ее в окно макроса. При этом автоматически создается макрокоманда «ОткрытьФорму», открывающая ее в представлении формы.

Пример

Задание значения элемента управления в форме с помощью макроса

Следующий макрос открывает форму «Товары» с помощью кнопки в форме «Поставщики». Он демонстрирует применение макрокоманд ВыводНаЭкран, ОткрытьФорму, ЗадатьЗначение и КЭлементуУправления

. Макрокоманда ЗадатьЗначение задает в качестве значения элемента управления «Код поставщика» в форме «Товары» текущего поставщика в форме «Поставщики». После этого макрокоманда КЭлементуУправления перемещает фокус на поле «Код категории», с которого начинается ввод данных для нового товара. Этот макрос должен быть привязан к кнопке «Добавить товары» в форме «Поставщики».

Макрокоманда

Аргументы: параметр

Примечание

ВыводНаЭкран

Включить вывод: Нет

Приостанавливает обновление экрана, пока выполняется макрос.

ОткрытьФорму

Имя формы: Товары

Представление: Форма

Режим данных: Добавление

Режим окна: Обычное

Открывает форму «Товары».

ЗадатьЗначение

Элемент: [Forms]![Товары]![КодПоставщика]

Выражение: КодПоставщика

Задает в качестве значения элемента управления «КодПоставщика» текущего поставщика в форме «Поставщики».

КЭлементуУправления

Имя элемента управления: КодКатегории

Выполняет переход к элементу управления «КодКатегории».

Событие Form.Open (Access) | Microsoft Learn

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

Событие Open происходит при открываемой форме, но до отображения первой записи.

Синтаксис

выражения. Открыть (отменить)

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

Параметры

ИмяОбязательный или необязательныйТип данныхОписание
ОтменаОбязательный64-разрядное целое число.Параметр определяет, происходит ли открытие формы или отчета. Настройка аргумента Отмена true (1) отменяет открытие формы или отчета.

При запуске макроса или процедуры события при открытом событии формы можно закрыть другое окно или переместить фокус на определенный контроль формы. Вы также можете запустить макрос или процедуру события, которая запросит сведения, необходимые перед открытием или печатью формы или отчета.

Например, процедура Open macro или event может открыть настраиваемый диалоговое окно, в котором пользователь вводит критерии фильтрации набора записей для отображения в форме или диапазоне дат, которые необходимо включить для отчета.

Событие Open не происходит при активации уже открытой формы. например, при переходе на форму из другого окна в Microsoft Access или использовании действия OpenForm на макросе, чтобы довести открытую форму до вершины. Однако событие Активировать происходит в этих ситуациях.

Когда вы открываете форму на основе базирующегося запроса, Microsoft Access запускает базовую запрос для формы, прежде чем она запускает процедуру Open macro или event.

Если приложение может одновременно загружать несколько форм, используйте события Активация и Деактивации вместо события Open для отображения и сокрытия настраиваемой панели инструментов при переходе фокуса в другую форму.

Событие Open происходит перед событием Load , которое запускается при запуске формы и отображении записей.

При первом открываемом виде в этом порядке происходят следующие события:

Откройтезагрузку активировать → Current

Событие Close происходит после события разгрузки , которое запускается после закрытия формы, но перед ее удалением с экрана.

При закрытии формы в этом порядке происходят следующие события:

Разгрузкаотключения → Close

Когда происходит событие Close , можно открыть другое окно или попросить имя пользователя сделать запись журнала, указывающее, кто использовал форму или отчет.

Если вы пытаетесь решить, использовать ли событие Open или Load для макроса или процедуры событий, одно существенное отличие состоит в том, что событие Open можно отменить, но событие Load не может. Например, если вы динамически строите источник записей для формы в процедуре событий для открытого события формы, можно отменить открытие формы, если нет записей для отображения. Аналогично, событие разгрузки может быть отменено, но событие Закрыть не может.

Пример

В следующем примере показано, как отменить открытие формы при выборе пользователем кнопки «Нет «. Поле сообщений побуждает пользователя вводить сведения о порядке. Если пользователь выбирает «Нет», форма «Сведения о порядке» не открывается.

Чтобы попробовать пример, добавьте в форму следующую процедуру события.

Private Sub Form_Open(Cancel As Integer) 
 Dim intReturn As Integer 
 intReturn = MsgBox("Enter order details now?", vbYesNo) 
 Select Case intReturn 
 Case vbYes 
 ' Open Order Details form. 
 DoCmd.OpenForm "Order Details" 
 Case vbNo 
 MsgBox "Remember to enter order details by 5 P.M." 
 Cancel = True ' Cancel Open event. 
 End Select 
End Sub

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

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

Событие Form.Open (Доступ) | Microsoft Узнайте

Редактировать

Твиттер LinkedIn Фейсбук Электронное письмо

  • Статья
  • 3 минуты на чтение

Событие Open возникает при открытии формы, но до отображения первой записи.

Синтаксис

выражение . Открыть ( Отменить )

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

Параметры

Имя Требуется/дополнительно Тип данных Описание
Отмена Обязательно Целое число Параметр определяет, происходит ли открытие формы или отчета. Настройка Отменить аргумент для Истинно (1) отменяет открытие формы или отчета.

Запустив макрос или процедуру обработки события, когда происходит событие формы Open , вы можете закрыть другое окно или переместить фокус на определенный элемент управления в форме. Вы также можете запустить макрос или процедуру события, которая запрашивает информацию, необходимую перед открытием или печатью формы или отчета.

Например, макрос Открыть или процедура события может открыть настраиваемое диалоговое окно, в котором пользователь вводит критерии фильтрации набора записей для отображения в форме или диапазона дат для включения в отчет.

Событие Open не возникает при активации уже открытой формы; например, когда вы переключаетесь на форму из другого окна в Microsoft Access или используете действие OpenForm в макросе, чтобы вывести открытую форму наверх. Однако в этих ситуациях возникает событие Activate .

При открытии формы на основе базового запроса Microsoft Access выполняет базовый запрос для формы перед выполнением макроса Open или процедуры обработки события.

Если ваше приложение может одновременно загружать более одной формы, используйте события Activate и Deactivate вместо события Open для отображения и скрытия настраиваемых панелей инструментов, когда фокус перемещается на другую форму.

Событие Open происходит перед событием Load , которое запускается при открытии формы и отображении ее записей.

При первом открытии формы происходят следующие события в следующем порядке:

Открыть Загрузить Изменить размер Активировать Текущий

Событие Close происходит после события Unload , которое запускается после закрытия формы, но до ее удаления с экрана.

При закрытии формы происходят следующие события в следующем порядке:

Выгрузить Деактивировать Закрыть

Когда Закрыть событие, вы можете открыть другое окно или запросить имя пользователя, чтобы сделать запись в журнале, указывающую, кто использовал форму или отчет.

Если вы пытаетесь решить, использовать ли событие Открыть или Загрузить для макроса или процедуры обработки события, одно существенное отличие заключается в том, что событие Открыть можно отменить, а событие Загрузить нельзя. . Например, если вы динамически создаете источник записей для формы в процедуре обработки событий для формы Открыть событие , вы можете отменить открытие формы, если нет записей для отображения. Точно так же событие Unload можно отменить, а событие Close нельзя.

Пример

В следующем примере показано, как можно отменить открытие формы, когда пользователь выбирает кнопку Нет . Окно сообщения предлагает пользователю ввести детали заказа. Если пользователь выбирает Нет , форма Сведения о заказе не открывается.

Чтобы попробовать пример, добавьте в форму следующую процедуру обработки события.

 Частная подпрограмма Form_Open (отменить как целое число)
 Dim intReturn As Integer
 intReturn = MsgBox("Введите детали заказа сейчас?", vbYesNo)
 Выберите Case intReturn
 Дело vbДа
 ' Открыть форму Детали заказа.
 DoCmd.OpenForm "Детали заказа"
 Случай vbНет
 MsgBox "Не забудьте ввести детали заказа до 17:00."
 Отмена = Истина ' Отменить событие открытия.
 Конец выбора
Конец сабвуфера
 

Поддержка и отзывы

У вас есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы Office VBA, чтобы узнать, как вы можете получить поддержку и оставить отзыв.

Использование DoCmd.OpenForm с аргументами

Форма имеет множество свойств, определяющих ее поведение. Эти свойства касаются способа представления данных, возможных фильтров, того, как их можно использовать для ввода данных редактирования и т.д. Когда вы разрабатываете свою форму, это время, когда вы выбираете значения по умолчанию для своей формы. Однако вы можете использовать примерно одну и ту же форму по-разному. Мощный способ изменить поведение по умолчанию во время разработки — использовать DocDmd.OpenForm аргументов.

Простой способ открыть форму — указать имя формы и сохранить все значения по умолчанию.

 DoCmd.OpenForm ИмяФормы:="Клиент" 

При открытии таким образом Access интерпретирует команду со значениями по умолчанию следующим образом:

 DoCmd.OpenForm FormName:="Customer", View:=acNormal, DataMode:=acFormPropertySettings, WindowMode:=acWindowNormal
 

Наиболее распространенными способами открытия формы являются форма (acNormal) или таблица данных (acFormDS). Специальные режимы просмотра, которые можно установить только во время разработки, — это разделенная форма и непрерывная форма. Разделенная форма может быть полезна, если пользователь хочет легко перемещаться между записями и в то же время вносить изменения в данные. Дополнительные сведения: Создание разделенной формы. Непрерывная форма используется, когда листа данных недостаточно.

Другими режимами просмотра являются acFormPivotTable и acFormPivotChart. Дополнительные сведения см. в статье Программирование сводных таблиц для форм доступа

.

Если вы оставите аргумент DataMode пустым, предполагается константа по умолчанию, acFormPropertySettings. Это открывает форму в режиме данных, установленном свойствами AllowEdits, AllowDeletions, AllowAdditions и DataEntry формы.

Другие возможные значения DataMode:

  • acFormAdd — открывает форму с «новой» (пустой) записью, позволяя пользователю создать новую запись.
  • acFormEdit — показывает контекст текущей выбранной записи и позволяет редактировать.
  • acFormReadOnly — добавление или редактирование запрещено.

Значение по умолчанию acWindowNormal показывает форму, как обычно в Access. Использование acDialog приводит к тому, что для свойств Modal и PopUp формы устанавливается значение Yes. С acDialog ваш вызывающий код не должен продолжаться до тех пор, пока форма не будет закрыта.

ИмяФильтра относится к запросу в текущей базе данных. Вы можете использовать либо существующий запрос, либо фильтр, который был сохранен как запрос. Вы можете использовать его как для получения подмножества, так и для его сортировки.

Допустимое предложение SQL WHERE (без слова WHERE) для выбора записей из базовой таблицы или запроса формы. Если вы выбираете фильтр с аргументом «Имя фильтра», Access применяет это предложение WHERE к результатам фильтра.

Чтобы открыть форму и ограничить ее записи теми, которые указаны значением элемента управления в другой форме, используйте следующее выражение:

[имя поля] = Forms![имя формы]![имя элемента управления в другой форме]

Замените имя поля именем поля в базовой таблице или запросе формы, которую вы хотите открыть. Замените formname и controlname в другой форме на имя другой формы и элемент управления в другой форме, который содержит значение, которое вы хотите, чтобы записи в первой форме совпадали.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *