Использование макросов для программирования в MS ACCESS

Описания макросов.

В данной научной работе было применено макросов. Причём из них дублируются из-за специфики выполняемых функций,  а остальные не имеют аналогов. Начнём пожалуй с AUTOEXEC - макроса. (см.  приложения) *  Его специфика заключается в том,  что макрос с таким именем всегда запускается в автоматическом режиме при загрузке базы данных. Это его свойство и позволяет без вмешательства пользователя вывести приглашение к работе и открыть главное окно АРМ FORMSNAVIGATOR 1. 0. Во всяком случае такая автоматизация производит должное впечатление на определённую группу (я так думаю весьма большую) пользователей. Макрос AUTOEXEC весьма прост по структуре, посему и задерживаться на нём не будем.

Макрос ДЛЯ_ГРУППЫ уже не так прост,  он содержит условие и к тому же использует большое количество команд. Условие позволяет осуществить выбор пользователю необходимой для загрузки формы. Кроме того хотелось бы особенно отметить макрокоманду ЗАДАТЬ ЗНАЧЕНИЕ.  Она весьма универсальна и позволяет в данном случае осуществить вывод на экран и скрытие определённых элементов (кнопка «Введите пароль» и поле для его ввода). В данном случае использованы их свойства вывод на экран (Visible),  которым с помощью макрокоманды ЗАДАТЬ ЗНАЧЕНИЕ присваивается значение либо ИСТИНА,  либо ЛОЖЬ. Пожалуй одна из простейших команд ПЕСОЧНЫЕ ЧАСЫ придаёт работе приложения «фирменный» вид,  если машина слишком долго думает. Этот макрос «привязан» к событию нажатие кнопки «Запуск».

Далее рассмотрим макрос ПАРОЛЬ. Он также содержит условие: сравниваются истинное значение пароля и пароль введённый пользователем. Если условие выполнено то,  спрятав элементы ввода пароля,  открываем форму «Финансы» и выводим на экран скрытые финансовые сведения. Если же пользователь ввёл пароль с ошибкой,  то ему предоставляется новая возможность для ввода пароля. Макрос запускается после обновления поля для ввода пароля.

 Из-за специфики работы приложения для функции ввода пароля был также использован макрос CLEAR,  очищающий поле для ввода пароля. Макрос «привязан» к событию нажатие кнопки «Ввод пароля».

Рассмотрим также принцип работы макросов,  отвечающих за навигацию по записям в формах: НАЙТИ (НАЙТИ1), НАЙТИ_ДАЛЕЕ (НАЙТИ_ДАЛЕЕ1). При выполнении данного макроса фокус переходит на поле фирма, где и осуществляется поиск.  Главнейшая макрокоманда здесь - это НАЙТИ ЗАПИСЬ. За образец поиска принимается значение из поля со списком.  Поиск осуществляется от первой записи вниз. Затем фокус возвращается к полю со списком.  В принципе последняя команда работает лишь для субъективной психологии человека, .т. к. пользователь ведь и не догадывается как работает программа, а посему если он выбирает значения из списка, то фокус не должен «прыгать» по всей форме. Макрос начинает работать после обновления поля со списком фирм.

Макрос НАЙТИ_ДАЛЕЕ (НАЙТИ_ДАЛЕЕ1) на первый взгляд не отличается от предыдущего, однако изменение всего в одном операнде макрокоманды НАЙТИ ЗАПИСЬ приводит к совершенно иным результатам. Вся разница в операнде первое вхождение. Здесь поиск осуществляется уже не с первой, а с текущей записи. Таким вот образом происходит поиск сведений о филиалах ** . Запуск макроса происходит после нажатия кнопки "Следующая . . . ".

Макрос УСТАНОВИТЬ ПОДПИСЬ КНОПКЕ  (УСТАНОВИТЬ ПОДПИСЬ КНОПКЕ1) состоит вообще из одной макрокоманды ЗАДАТЬ ЗНАЧЕНИЕ . Но тем не мене весьма изящен и делает очень красивую с точки зрения пользователя функцию (да и полезную, ведь без него кнопка "Следующая . . . " могла бы восприниматься в глазах пользователя как кнопка для перехода к следующей записи!). Функции Caption присваивается значение "Следующая " & [Forms]![Фирма]![пссфм], т. е. Следующая + значение поля со списком. Макрос работает по свойству кнопка вверх для кнопки «Следующая... » и при открытии формы.

Макрос ПОДРОБНЕЕ позволяет пользователю простой установкой флажка выводить на экран (или сняв флажок, убирать с экрана) сведения о регистрации фирм. Это свойство весьма полезно, т. к. позволяет убирать с экрана ненужную на данный момент информацию. Эта функция выполняется с помощью условия и всё той же универсальной и весьма всеми любимой командой ЗАДАТЬ ЗНАЧЕНИЕ . Здесь опять-таки мы используем для операнда элемент функцию Visible для примечаний формы, где и находятся наши сведения о регистрации. Макрос «привязан» к событиям после обновления флажка и загрузке формы «Фирма».

Макрос К_FORMSNAVIGATOR1_0 используется как в форме «Фирма». Так и в форме «Финансы» для осуществления возврата к основному окну FORMSNAVIGATOR1. 0. Его состав очень прост. Такой макрос думаю я осилит большая часть студентов, а посему и останавливаться на нём не будем.

Рассмотрев все применяемые здесь макросы хотелось бы сделать кое-какие выводы:

à     

à      VisualBasic

à      VisualBasic

à     

à     

Автор: Славников Дмитрий Васильевич

slavnikov_d@mail.ru

Постановка задачи.

Использование макросов в конкретном приложении предлагается рассмотреть на примере следующей задачи.

При открытии базы данных "АРМ FORMSNAVIGATOR 1.0" сначала на экран выводится приглашение к работе и затем открывается основное окно навигатора.

 Для выполнения этих действий используется макрос AUTOEXEC.

 

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

Окно FORMSNAVIGATOR 1.0 содержит следующие элементы управления: Группа переключателей "Выбор формы" и Кнопка "Запуск". Имеется возможность выбора необходимой формы при помощи Группы переключателей. Всплывающая подсказка помогает даже неопытному пользователю в организации наиболее оптимальной работы. После осуществления выбора необходимой формы следует нажать кнопку "Запуск". Кнопка также имеет всплывающую подсказку. После нажатия кнопки будет загружена необходимая форма. Эта функция реализована в макросе ДЛЯ_ГРУППЫ. Листинг его приведён в приложениях.

Однако следует отметить тот факт, что форма "Финансы фирмы" имеет ограниченный паролем доступ. Реализация этой функции заложена в макрос ПАРОЛЬ. Листинг его приведён в приложениях. В данном случае после нажатия кнопки "Запуск" будет выведено следующее сообщение

После чего на экране появляется приглашение для ввода пароля: Кнопка "Ввод пароля" и специальное поле для него.

Нажатие кнопки "Ввод пароля" запускает макрос CLEAR (листинг см. в приложениях), который активизирует поле для ввода пароля и очищает его. Символы, набранные в данном поле отображаются звёздочками. Если пароль набран неправильно, то выводится соответствующее сообщение и фокус переходит к кнопке "Ввод пароля".

В случае же верного ввода пароля машина также сообщает об этом и происходит загрузка формы "Финансы"

Как уже было отмечено выше за эти действия отвечает макрос ПАРОЛЬ.

В форме "Финансы" при верном пароле становится доступна финансовая информация фирм. Навигация по записям осуществляется при помощи Поля со списком  и Кнопки "Следующая фирма". При этом оказываются задействованными макросы НАЙТИ1, НАЙТИ_ДАЛЕЕ1 и УСТАНОВИТЬ_ПОДПИСЬ_КНОПКЕ1 (см. приложения). Выбор нужной фирмы в поле со списком пприводит к автоматическому выводу на экран финансовых сведений о ней( а точнее о центральной фирме) и изменению подписи к кнопке "Следующая фирма", нажатие же кнопки  приводит к поиску информации о филиалах.

 

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

При нажатии Кнопки "К FORMSNAVIGATOR 1.0" выполняется макрос К_ FORMSNAVIGATOR_1.0 и осуществляется переход к главному окну навигатора.  Листинг макроса см.  в приложениях.

  Теперь выбираем для запуска форму «Сведения о фирмах» и запускаем её нажатием кнопки. Я уже указывал на макрос, работающий здесь.(ДЛЯ_ГРУППЫ) Осуществляется переход на форму «Фирма». Здесь используются следующие макросы: НАЙТИ, НАЙТИ_ДАЛЕЕ для навигации по записям; УСТАНОВИТЬ_ПОДПИСЬ_КНОПКЕ для изменения внешнего вида кнопки;К_FORMSNAVIGATOR_1_0 для возврата к основному окну навигатора; а также макрос ПОДРОБНЕЕ, который в зависимости от того есть или нет флажка «Сведения о регистрации» выводит или скрывает поля с информацией о регистрации фирмы. Листинг его в приложениях.

Автор: Славников Дмитрий Васильевич

slavnikov_d@mail.ru


*    Листинги всех макросов можно просмотреть в приложениях.

 

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