- •Лабораторная работа n 1 система управления базой данных access. Начало работы
- •Введение
- •Начало работы: создание таблицы в базе данных
- •Режим таблицы
- •Типы и свойства полей
- •Мастер таблиц
- •Импорт таблиц
- •Связь с таблицами
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 2 работа с таблицами
- •Введение
- •Режим замены
- •Режим вставки
- •Операции поиска
- •Фильтрация данных в таблице
- •Поиск и замена
- •Удаление данных
- •Изменение структуры таблицы
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 3 изменение образа таблицы
- •Вводные замечания
- •Установка параметров шрифта
- •Параметры ячеек
- •Изменение расположения строк/колонок
- •Внимание!
- •Изменение типа поля
- •Отображение полей
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 4 главное меню access
- •Меню Правка
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 5 создание запросов
- •Общие сведения
- •Сортировка данных в запросе
- •Применение специальных критериев
- •Вычисления в запросе
- •Внимание!
- •Поле Продавец Объем операции Номер записи
- •Поле Продавец Объем операций Номер записи
- •Запросы к нескольким таблицам
- •Запрос на добавление
- •Запрос на удаление
- •Запрос на обновление
- •Запрос на создание таблицы
- •Индикация результатов выполнения запросов
- •Параметрические запросы
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 6 создание форм
- •Вводные замечания
- •Создание форм с помощью мастера
- •Перемещение и редактирование полей формы
- •Фильтрация данных в форме
- •Обычный фильтр
- •Фильтр по выделенному
- •Расширенный фильтр
- •Форма ленточного типа
- •Создание диаграмм
- •Составные и связанные формы
- •Применение элементов управления в формах
- •Мастер кнопок
- •Списки в формах
- •Размещение в форме графического объекта
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 7 отчеты в access
- •Вводные замечания
- •Автоотчеты
- •Конструктор отчетов
- •Мастер диаграмм
- •Мастер отчетов
- •Вычисления в отчете
- •Печать отчета
- •Предварительный просмотр
- •Опции печати
- •Задание
- •Создание меню и панелей инструментов
- •Создание панели инструментов для всех баз данных
- •Создание панели инструментов для отдельной базы данных
- •Создание специальной строки меню
- •Создание и удаление контекстного меню
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 9 макросы в access. Первое знакомство
- •Вводные замечания
- •Создание макросов
- •Кнопка, запускающая макрос
- •Макрокоманды для работы с данными
- •Макрокоманды для управления Access
- •Макрокоманды для решения задач программирования
- •Редактирование макросов
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 10
- •Отладка макросов, макрогруппы,
- •Связь с меню
- •Цель работы: Освоить процедуры отладки макросов, создания макрогрупп, создания макросов, связанных с меню.
- •Отладка макроса
- •Применение пошагового режима
- •Объединение макросов в макрогруппу
- •Связывание макросов с командами меню
- •Связывание макросов с событиями
- •События, связанные с клавиатурой и мышью
- •Связывание с событиями
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 11
- •Макросы с условием. Представление объектов. Установка имен и значений
- •Цель работы: Изучить методику создания макросов с условием, управление представлением объектов из макроса, указание имен объектов, установку значений.
- •Выполнение макроса с условием
- •Управление представлением объектов из макроса
- •Указание имен объектов
- •Установка значений
- •Задание
- •Контрольные вопросы
- •Лабораторная работа n 12 работа с приложениями и программами. Оформление меню
- •Вызов приложений и управление ими
- •Запуск прикладных программ с параметрами
- •Управление прикладными программами из access
- •Автоматизация вывода на печать
- •Оформление собственной строки меню
- •Задание
- •Контрольные вопросы
- •Цитированная литература
- •Содержание
Установка значений
Выше были рассмотрены случаи доступа к полям формы с целью анализа их содержимого. С помощью макроса проверялись некоторые условия, в зависимости от результата проверки выполнялись те или иные операции. При интерактивной работе с базой данных часто возникает необходимость использовать макросы не только для анализа данных, но и для установки значений.
Рассмотрим данную тему на примере. Создадим форму Запрос, которая позволит автоматизировать поиск телефонных номеров в каталоге. Критерий поиска номера должен вводиться в поле этой формы. Содержимое поля с критерием поиска будет применяться в качестве фильтра для формы Каталог телефонов. Номер телефона, полученный в результате фильтрации, должен быть скопирован из этой формы в буфер обмена и вставлен в поле индикации формы Запрос.
Форма Запрос должна содержать текстовые поля Фамилия и Телефон, а также кнопки Поиск и Отмена. Создать ее нетрудно. При этом следует воспользоваться конструктором форм, выбрав в качестве базовой таблицу Адреса. В окне конструктора формы следует разместить в области данных поля и кнопки так, как показано на рисунке.
-
-------------- ---------------------
| Фамилия | | |
-------------- ---------------------
-------------- ---------------------
| Телефон | | |
-------------- ---------------------
----------- -----------
| Поиск | | Отмена |
----------- -----------
В строке Данные свойств поля Фамилия должно быть установлено значение Фамилия.
Для автоматизации работы с такой формой понадобятся три макроса:
- Открыть запрос - открывает форму Запрос в режиме заполнения;
- Поиск запроса - макрос для кнопки Поиск;
- Прервать запрос - макрос для кнопки Отмена.
Макрос Открыть запрос состоит только из одной макрокоманды - ОткрытьФорму. При этом аргумент Режим окна должен иметь значение Окно диалога, чтобы размер окна был неизменен. Макрос Прервать запрос состоит из макрокоманды Закрыть, у которой аргумент Тип объекта имеет значение Форма, a apгумент Имя объекта - значение Запрос. Макрос Поиск запроса несколько сложнее. Для его разработки необходимо выполнить следующие действия:
- Создать новый макрос, в котором первой должна быть макрокоманда ОткрытьФорму со значением Каталог телефонов для аргумента Имя формы . Таким образом будет открыта форма Каталог телефонов.
Для аргумента Режим окна необходимо установить значение Значок. В качестве значения для аргумента Условие отбора необходимо использовать следующее выражение:
[Фамилия]=Forms![Запрос]![Фамилия]
Это выражение будет применяться в качестве фильтра для формы Каталог телефонов, отображаемой в виде пиктограммы.
- Во вторую строку макроса ввести макрокоманду КЭлементуУправления со значением Телефон для аргумента Имя элемента. В результате содержимое поля Телефон найденной записи будет маркировано.
- В третью строку вставить макрокоманду ВыполнитьКоманду с аргументом Copy. В результате номер телефона будет скопирован в буфер обмена.
- В следующую строку ввести макрокоманду Закрыть, после выполнения которой форма Каталог телефонов будет закрыта. Для аргумента Тип объекта этой макрокоманды установить значение Форма, а для аргумента Имя объекта - Каталог телефонов. Таким образом будет указан тип закрываемого объекта и его имя.
- В следующую строку ввести макрокоманду ВыделитьОбъект. Установить для ее аргумента Тип объекта значение Форма, а для аргумента Имя объекта - значение Запрос. Данная макрокоманда активизирует форму Запрос.
- Следующая макрокоманда КЭлементуУправления с аргументом Телефон предназначена для выделения поля Телефон формы Запрос.
- Последняя макрокоманда, ВыполнитьКоманду, с аргументом Paste помещает содержимое буфера обмена в поле Телефон формы Запрос.
- Сохранить макрос под именем Поиск запроса.
Входящее в макрокоманду ОткрытьФорму условие автоматически оформляется как фильтр. Условием отбора записей этим фильтром является идентичность содержимого поля Фамилия формы Запрос и поля Фамилия формы Каталог телефонов (последняя открывается с помощью макрокоманды ОткрытьФорму, поэтому можно обойтись краткой формой записи, а не указывать полное имя этой формы). В результате фильтрации форма Каталог телефонов будет содержать только ту запись, которая соответствует критерию фильтрации. После этого поле Телефон отфильтрованной записи активизируется, а его содержимое копируется в буфер обмена. Все это происходит, когда форма Каталог телефонов отображается на экране в виде пиктограммы.
Внимание!
При обработке полей некоторого объекта нельзя устанавливать для него режим отображения Скрыть, поскольку в этом случае поля скрытого объекта недоступны.
После закрытия формы Каталог телефонов активизируется поле Телефон формы Запрос, в которое вставляется номер телефона из буфера обмена.
Чтобы обеспечить нормальное функционирование формы Запрос, необходимо связать макросы Поиск запроса и Прервать запрос с соответствующими кнопками в форме. Для этого следует перейти в режим конструктора формы, маркировать кнопку Поиск и открыть окно ее свойств. В качестве значения параметра Нажатие кнопки надлежит задать имя макрокоманды Поиск запроса. Те же действия нужно выполнить и для кнопки Отмена, связав с ней макрокоманду Прервать запрос.
Если нужная фамилия не найдена в форме Каталог телефонов, макрос Поиск запроса выдает сообщение об ошибке при выполнении команды ВыполнитьКоманду с аргументом Copy и завершается из-за того, что в результате фильтрации не найдена ни одна запись, удовлетворяющая заданным условиям. Команда КЭлементуУправления в таком случае активизирует поле Телефон, но не маркирует его содержимое, что приводит к невыполнению команды Copy и к появлению сообщения об ошибке.
Чтобы сообщение об ошибке не появлялось при отсутствии в поле Телефон отобранной записи, в макрос следует включить условие обработки макрокомандой исключительной ситуации. Форму Каталог телефонов необходимо закрыть, а в поле Телефон формы Запрос - поместить текст Не указан (это реакция на исключительную ситуацию). После этого сообщения можно прервать выполнение макроса.
Чтобы реализовать намеченный план внесения изменении в макрос, необходимо выполнить следующие действия:
- Открыть макрос Поиск запроса в режиме конструктора и после второй строки вставить четыре пустые строки с помощью кнопки Добавить строки панели инструментов.
- Открыть столбец условий Условия.
- В поле Условия третьей строки ввести следующее выражение:
Forms![Каталог телефонов]![Телефон]=""
Это условие, позволяющее проверить, пусто ли поле Телефон.
- Пустые строки (включая первую, в которой указано условие) должны содержать последовательность макрокоманд, представляющих собой реакцию на возникновение описываемой условием ситуации. В поле Макрокоманда рядом с условием ввести макрокоманду Закрыть для закрытия формы Каталог телефонов.
- В следующей строке поля условий ввести многоточие, а поля Макрокоманда - ВыделитьОбъект. Для аргумента Тип объекта этой макрокоманды установить значение Форма, а для аргумента Имя объекта - значение Запрос.
- Следующую строку начать с многоточия и ввести в нее макрокоманду ЗадатьЗначение. Для аргумента Элемент задать значение Телефон (в это поле макрокоманда будет устанавливать значение), а для аргумента Выражение - значение "Не указан" (кавычки обязательны!).
- В последнюю пустую строку ввеcти макрокоманду Остановить- Макрос. В поле Условие этой макрокоманды вставить многоточие.
- Сохранить макрос.
Условие в первой из вставленных строк проверяет, не является ли поле Телефон в форме Каталог телефонов пустым. Если это поле ничего не содержит (т.е. содержит строку нулевой длины ""), условие соблюдается, и выполняется макрокоманда Закрыть.
Многоточия в столбце условий следующих трех строк нужны для того, чтобы макрокоманды в этих строках выполнялись при соблюдении того же условия. Посредством команды ЗадатьЗначение в поле Телефон формы Запрос передается текст Не указан, после чего макрос прерывается с помощью макрокоманды ОстановитьМакрос.
Внимание!
При отсутствии макрокоманды ОстановитьМакрос выполнение макроса продолжается со следующей макрокоманды, а пользователь получает повторное сообщение об ошибке при попытке скопировать отсутствующее содержимое поля в буфер обмена.