Разработка приложений баз данных Access. Автоматизация работы приложения с помощью модулей. Сохранение макроса в виде модуля

Страницы работы

Содержание работы

 

5.  АВТОМАТИЗАЦИЯ РАБОТЫ ПРИЛОЖЕНИЯ С ПОМОЩЬЮ МОДУЛЕЙ

Сохранение макроса в виде модуля

Модуль – это набор процедур Visual Basic. По сравнению с макросом модуль – инструмент более гибкий и удобный. Основной недостаток модулей состоит в том, что их разработка доступна только достаточно опытным пользователям, знакомым с языком программирования Visual Basic, в то время как создать макрос может практически любой пользователь. Поэтому в Access предусмотрена возможность преобразования макросов в модули.

Пример 5.1.В форме Товары обеспечить (с помощью общего модуля) перехват запросов на удаление товаров.

Преобразование группы макросов Товары в модуль

1.  Откройте группу макросов Товары в режиме конструктора.

2.  В группе Работа с макросами перейдите в группу Сервис и выберите Преобразовать макросы. 

 

3.  Установите или сбросьте флажки Добавить программу обработки ошибок и Добавить примечания макросов. Нажмите кнопку Преобразовать.

 

4.  Откройте общий модуль Преобразованный макрос: в режиме конструктора – в базе данных автоматически сформировались на Visual Basic пользовательские функции (в том числе функция Товары_Удаление() ).

 

Привязка формы Товары к функции Товары_Удаление() в общих модулях базы 1. Откройте форму Товары в режиме конструктора и откройте окно свойств формы.

2. Во вкладке События щелкните в строке Удаление и удалите обращение к макросу Товары.Удаление. Щелкните по кнопке построителя (...), выберите Выражения, а затем с помощью построителя выражений среди функций базы выберите и вставьте функцию Товары_Удаление().

 

Каскадное удаление данных          

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

Пример 5.2.В форме Удаление покупателей обеспечить (с помощью модуля формы) перехват запросов на удаление покупателей.

Создание списка заказчиков

1.  Выберите вкладку ленты Создание и в группе Запросы сделайте щелчок левой кнопкой мыши по значку Конструктор запросов

2.  В открывшемся окне диалога Добавление таблицы выберите таблицы Покупатель и Заказы.

3.  Добавьте в запрос поле Предпр из таблицы Покупатель 

4.  Откройте окно свойств запроса и в строке Уникальные значения выберите Да.

 

5.  Сохраните запрос с именем Заказчики.

Создание модуля формы Удаление покупателей

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

2.  Во вкладке События в строке Удаление щелкните по кнопке построителя (...), а затем выберите Программы

 

3.  Откроется модуль формы с шаблоном процедуры-подпрограммы Form_Delete.

Введите текст процедуры на языке Visual Basic:

Private Sub Form_Delete(Cancel As Integer)

Dim StrNew As String

StrNew = Chr$(10)

 If DCount("[Предпр]", "[Заказчики]", "[Предпр] =Forms![Удаление покупателей]![Предпр] ") _ <> 0 Then

 MsgBox "У покупателя " & Me![Предпр] & " существуют заказы." & StrNew & StrNew &_

"Перед удалением покупателя " & Forms![Удаление покупателей]![Предпр] & _

StrNew & StrNew & "следует удалить все его заказы.", 48, "Удаление покупателя"  Cancel = True

 Exit Sub

 End If

 If MsgBox("Вы уверены, что хотите удалить покупателя " & StrNew & _

 Forms![Удаление покупателей]![Предпр] & "?", 33, "Удаление покупателя") <> 1 Then

 Cancel = True

 End If

End Sub 

Примечание. Для разделения строк в диалоговом окне команды MsgBox допускается использование символа возврата каретки (Chr$(13)), символа перевода строки (Chr$(10)) или комбинацию этих символов (Chr$(13) & Chr$(10)).

Второй аргумент команды MsgBox – число 48, формирует в диалоговом окне значок "Предупреждение".

4. Откройте форму Удаление покупателей и протестируйте удаление заказчиков товаров.

Пример 5.3.Обеспечить перехват запросов на удаление заказа, чтобы:

•  посмотреть, реализован ли этот заказ;

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

Синхронизация данных в форме          

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

Добавление поля со списком для перехода сразу к нужному покупателю

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

2.  В конструкторе на панели элементов управления нажмите кнопки Мастера и Поле со списком и щелкните в разделе заголовка формы.

3.  Следуйте указаниям, приведенным в диалоговых окнах мастера:

•  выберите переключатель Поиск записи в форме на основе значения, которое содержит поле со списком;

•  выберите поле Предпр, по которому планируется осуществлять поиск;

•  задайте подпись “Перечень покупателей:” в качестве имени вставленного в форму раскрывающегося списка.

 

4.  Сохраните и запустите форму: - раскройте список “Перечень покупателей:”, выделите нужный элемент списка и нажмите Enter - форма перейдет к отображению покупателя, выбранного в раскрывающемся списке;

- с помощью полосы прокрутки перейдите к следующему покупателю – значение в элементе “Перечень покупателей:” не изменилось (т.е. данные в форме синхронизированы не полностью).

Создание модуля формы для синхронизации элемента Перечень покупателей: с данными в форме

1.  Откройте форму Заказы и продажи текущего покупателя в режиме конструктора и откройте окно свойств формы.

2.  Во вкладке События в строке Текущая запись щелкните по кнопке построителя (...), а затем выберите Программы - при этом откроется модуль формы с шаблоном процедуры-подпрограммы Form_Current().

3.  Введите текст процедуры на языке Visual Basic, используя краткий синтаксис для ссылки на элементы текущей формы (например, Me![Предпр]):

Private Sub Form_Current()

4. 


Откройте форму Заказы и продажи текущего покупателя и протестируйте удаление заказчиков товаров. С помощью полосы прокрутки перейдите к следующему покупателю – значение в элементе “Перечень покупателей:” соответственно изменилось.

 

Пример 5.5.Создайте модуль формы Товары для синхронизации элемента “Перечень товаров:” с данными в форме (см. пример 2.8).

Пример 5.6.Создайте модуль формы Ввод покупателей для синхронизации элемента “Перечень покупателей:” с данными в форме (см. пример 2.9).

Задание 5

Похожие материалы

Информация о работе