Использование SetOption для отключения предупреждающих сообщений в приложении Access

Средний. Требуются базовые навыки макроса, программирования и взаимодействия.

Эта статья относится только к базе данных Microsoft Access (.mdb или .accdb).

Аннотация

В этой статье показано, как с помощью метода Application.SetOption отключить предупреждающие сообщения в приложении Access.

Дополнительная информация

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут помочь объяснить функциональность конкретной процедуры, но они не будут изменять эти примеры, чтобы предоставить дополнительные функциональные возможности или создать процедуры в соответствии с вашими конкретными требованиями. Запросы на действия и другие процессы, которые добавляют, удаляют или изменяют данные, обычно представляют пользователю предупреждение о том, что данные будут изменены. Однако в приложении во время выполнения часто желательно отключить предупреждения, так как проверки и меры предосторожности обычно выходят за рамки контроля пользователя.

Это можно сделать с помощью метода SetWarnings объекта DoCmd, но вы можете отключить предупреждения для всего приложения. Для этого можно использовать метод SetOption объекта Application. Однако в этом случае вы также должны снова включить предупреждения по мере выхода приложения.

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

  1. Запустите Access и создайте пустую базу данных с именем TestRun.

  2. Импортируйте таблицу Customers из примера базы данных Northwind.mdb.

  3. Создайте новую форму в режиме конструктора, а затем добавьте поле со списком без ограничений в раздел сведений.

  4. Задайте следующие свойства для поля со списком:

    Name: cboCountry
    Row Source: SELECT DISTINCT Customers.Country FROM Customers ORDER BY Customers.Country; 
    
  5. Добавьте кнопку команды в раздел сведений формы и назовите ее cmdDelete.

  6. Задайте для свойства OnClick кнопки команды следующую процедуру события:

    DoCmd.OpenQuery "qryDeleteCustomers"

  7. Закройте редактор Visual Basic.

  8. Сохраните форму как DeleteCustomers и закройте ее.

  9. Создайте запрос в режиме конструктора, а затем добавьте таблицу Customers.

  10. В Access 2002 или Access 2003 щелкните Удалить запрос в меню Запрос .

    В Access 2007 нажмите кнопку Удалить в группе Тип запроса на вкладке Конструктор .

  11. Перетащите звездочку (*) из списка полей в первый столбец сетки конструктора запроса, а затем перетащите поле Страна во второй столбец.

  12. В строке Условия столбца Страна введите следующее:

    Формы! [DeleteCustomers]! [cboCountry]

  13. Сохраните запрос как qryDeleteCustomers и закройте его.

  14. Откройте форму DeleteCustomers в представлении формы.

  15. Выберите страну в поле со списком, нажмите кнопку команды и обратите внимание на появиющееся предупреждение. В диалоговом окне предупреждения нажмите кнопку Нет.

  16. Откройте форму в режиме конструктора, а затем на панели инструментов нажмите кнопку Код.

  17. В окне Код введите или вставьте следующие процедуры:

Private Sub Form_Load()

Application.SetOption "Confirm Action Queries", 0
   Application.SetOption "Confirm Document Deletions", 0
   Application.SetOption "Confirm Record Changes", 0

End Sub

Private Sub Form_Unload(Cancel As Integer)

Application.SetOption "Confirm Action Queries", 1
    Application.SetOption "Confirm Document Deletions", 1
    Application.SetOption "Confirm Record Changes", 1

End Sub

  1. Закройте Редактор Visual Basic, а затем сохраните и закройте форму.

  2. Откройте форму DeleteCustomers, выберите страну и нажмите кнопку команды.

    Обратите внимание , что диалоговое окно предупреждения не отображается.

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