
- •Санкт-Петербургский
- •Оглавление
- •Запуск Access
- •Интерфейс пользователя Access
- •НастройкиAccess
- •Создание новой бд
- •Таблицы
- •Создание структуры таблицы
- •Типы данных
- •Свойства полей
- •Загрузка таблицы данными
- •Модификация структуры таблицы
- •Работа с макетом таблицы
- •Печать таблицы
- •Запросы
- •Типы запросов
- •Создание qde-запросов
- •Заполнение бланка запроса
- •Работа с построителем выражений
- •Примеры запросов
- •Запросы на выборку данных
- •Запросы на создание таблицы
- •Запросы на добавление записей
- •Insert into Det ( dim, cena )
- •Insert into Det ( dim, cena )
- •Values ("шайба", 40);
- •Insert into Новая ( pim, gor )
- •Запросы на удаление записей
- •Запросы на обновление полей записей
- •Перекрестные запросы
- •Вложенные запросы
- •Sql-запросы
- •Фильтрация данных
- •13.1. Создание однотабличной формы
- •13.2. Редактирование формы
- •13.3. Часто используемые свойства формы
- •13.4. Элементы управления на форме и их свойства
- •14. Отчеты
- •14.1. Создание отчета
- •14.2. Работа с отчетом в режиме конструктора
- •14.3. Сортировка и группировка данных
- •15. Макросы
- •15.1. Создание макросов
- •15.2. Краткая характеристика основных макрокоманд
- •15.3. Групповые макросы
- •15.4. Реализация ветвлений в макросах
- •15.4.1. Примеры макросов с односторонним ветвлением
- •15.4.2. Пример макроса с двусторонним ветвлением
- •15.5. Реализация циклов в макросах
- •16. Основы создания пользовательского интерфейса
- •16. 1. Взаимодействие форм
- •16. 2. Требования, предъявляемые к интерфейсу пользователя
- •Литература
15.4. Реализация ветвлений в макросах
Разветвляющиеся вычислительные процессы бывают двух видов: односторонние и двусторонние. В односторонних процессах вычисления определены только в одной ветви, а в двусторонних - в обеих ветвях. Соответственно в макросах с односторонним ветвлением определен набор макрокоманд только в одной ветви, а с двусторонним ветвлением - в обеих ветвях. Ветвление осуществляется в зависимости от значения некоторого условия, которое может быть истинно или ложно. Поэтому при конструировании макроса с ветвлением используется строка Если для записи условия ветвления. Макрос с ветвлением часто называют условным макросом.
15.4.1. Примеры макросов с односторонним ветвлением
Пример 13. Пусть при открытии таблицыDetкнопкойДеталив формеПросмотр поставщиков и деталей,рассмотренной в предыдущем примере, будет запрашиваться пароль. Если введен правильный пароль, таблица будет открыта, если - неправильный, то будет выдано сообщение на повторный ввод пароля. Для этого нужно выполнить следующую последовательность действий:
придумать правильный пароль, например123;
создать с помощью конструктора форм форму (без источника данных) по именипароль,в которой будет запрашиваться пароль. Такая форма будет содержать надписьВведите парольи единственный ЭУПоле.
задать в окне свойств для поля имя, например, пар(вкладкаДругие).
задать свойствуМаска вводаполя(вкладкаДанные) значение Пароль (введите из списка и, если средство не установлено, то напишите с помощью клавиатуры). В этом случае при вводе пароля вместо вводимых символов будет отображаться символ *.
сохранить форму с именем пароль.
отредактировать групповой макрос Открытие следующим образом:
открыть макрос Открытие в режиме конструктора;
создать еще один вложенный макрос Открыть пароль с двумя макрокомандами ЗакрытьОкно и ОткрытьФорму, указав в аргументах имя открываемой формы пароль, как показано на рисунке 83:
Рисунок 83 – Вложенный макрос для открытия формы пароль
закрыть групповой макрос, сохранив результаты редактирования;
связать событие Нажатие кнопки для кнопки Детали в форме Просмотр поставщиков и деталей с вложенным макросом Открытие.Открыть пароль. Тогда при попытке открыть таблицу Детали (1с по кнопке Детали в форме Открытие поставщиков и деталей) сначала откроется форма пароль, которая запросит ввод пароля.
создать макрос по имени Анализ пароля, который будет анализировать правильность ввода пароля (см. рисунок 84):
Рисунок 84 – Макрос для анализа пароля
связать событие После обновления поля пар в форме пароль с макросом Анализ пароля;
закрыть форму пароль, сохранив результаты редактирования.
открыть формуПросмотрпоставщиков и деталейв режиме формы и убедиться в том, что таблицаДеталиоткрывается только при правильном вводе пароля.
Пояснения к рисунку 84
Начинается конструирование макроса со строки Если, которую можно добавить из списка макрокоманд или 2с по кнопке Если в окне каталога макрокоманд, как показано на рисунке 85.
Рисунок 85 – Добавление строки Если в макрос
Начинается анализ с неверного пароля. В условии
Not [Формы]![пароль]![пар]="123"
пароль 123 указан не как числовой, а как строка символов. Это сделано потому, что, если неверный пароль будет введен символами, то появится системное сообщение о несоответствии типов.
Макрокоманда ЗадатьЗначение удаляет символы неверного пароля из поля и сохраняет курсор в поле для повторного ввода пароля.
Макрокоманда ОстановитьМакрос завершает выполнение макроса. При повторном вводе пароля макрос выполняется сначала.
При вводе верного пароля открывается таблица Det, которую можно просматривать и редактировать, так как задан режим данных Изменение.
Часто при реализации пользовательского интерфейса приходится контролировать действия пользователя, например, осуществлять проверку выполнения пользователем некоторых предписанных ему действий. Если пользователь какое-то из этих действий не выполнил, то нужно напомнить ему об этом и подождать, когда он все же выполнит это действие. В следующем примере рассмотрена одна из таких ситуаций.
Пример 14. Пусть требуется показать детали, которые поставляет поставщик из заданного города. Эту задачу можно решить разными способами. Укажем один из них.
Создадим форму по имениВыбордеталей. В область данных этой формы нанесем поле со списком, в котором отобразим города поставщиков из таблицы Post.При выборе из списка города по кнопке Детали выведем сведения о деталях, поставляемых из этого города. Если пользователь забыл выбрать город из списка, то напомним ему об этом и сведения о деталях выведем только тогда, когда пользователь выберет город.
Для решения поставленной задачи нужно выполнить следующую последовательность действий:
создать конструктором форм форму без источника данных;
«почистить форму», задав значения свойств макета формы:
Кнопки навигации: Нет;
Область выделения: Нет;
нанести в область данных поле со списком;
исправить присоединенную к полю со списком надпись на Выберите город;
отформатировать надпись;
для поля со списком задать значения свойств (вкладка Данные):
Тип источника данных: Таблица или запрос;
Для задания значения свойству Источник строк нужно построить запрос. Для этого нужно поставить курсор в строку свойства Источник строк, кнопкой с тремя точками открыть окно конструктора запросов и создать запрос, показанный на рисунке 86:
Рисунок 86 – Запрос для свойства Источник строк поля со списком
После закрытия запроса свойству Источник строк будет автоматически присвоено значение SELECT Post.GOR FROM Post GROUP BY Post.GOR, что обеспечит вывод в поле со списком городов поставщиков без повторений;
Свойству Имя (вкладка Другие) вместо ПолеСоСписком2 задать значение города (написать с использованием клавиатуры);
нанести на форму кнопку, на которой написать Детали;
закрыть форму, сохранив результаты редакции и задав форме имя Выбор деталей;
создать запрос (см. рисунок 87), с помощью которого отбираются детали из выбранного города:
Рисунок 87 – Запрос для отображения деталей, поставляемых из выбранного города
сохранить запрос с именем для поля со списком;
создать условный макрос (см. рисунок 88), который проверяет, выбрал ли пользователь город, и, если выбрал, то отоб-
Рисунок 88 – Условный макрос для вывода ражает детали, поставляемые из этого го-
Сведений о поставляемых деталей из рода. Если – не выбрал, то выдается поль-
выбранного города зователю напоминание о необходимости
выбора.
!!! Выделенные макрокоманды из-за недоработок разработчиков Access необходимы для корректного решения поставленной задачи
сохранить макрос с именем сведения о деталях из выбранного города;
связать событие Нажатие кнопки для кнопки Детали с созданным макросом
открыть форму Выбор деталейи убедиться в правильности решения поставленной задачи.