Создание компонентного модуля туристской фирмы в БД MS Access

Пример разработки базы данных.

Постановка задачи. Требования к информационным системам.

Проектирование начинается с описания предметной области и задач информационной системы, затем идет к более абстрактному уровню логического описания данных и далее — к схеме физической (внутренней) модели БД. Трем основным уровням моделирования системы — концептуальному, логическому и физическому соответствуют три последовательных этапа детализации описания объектов БД и их взаимосвязей.

Концептуальная модель описывает объекты предметной области и их взаимосвязи с помощью диаграмм и других средств.

Итак, туристическое агентство создает информационную систему, которая автоматизирует учет договоров с клиентами, контроль исполнения заказов на путешествия. Опишем концептуальную модель данной базы данных. Агентство может организовать два вида туров: индивидуальные и групповые.

Договор включает:

  • ? название компании-клиента;
  • ? данные о контактном лице;
  • ? описание предмета договора;
  • ? дату начала исполнения договора;
  • ? дату окончания исполнения, дату оплаты.

В реализации заказа клиента участвует сотрудник туристического агентства.

В функции информационной системы входит, например, получение следующей информации.

  • 1. Клиенты:
    • ? клиенты агентства для реализации контактной деятельности;
    • ? постоянные клиенты агентства;
    • ? клиенты, дающие наибольший доход.
  • 2. Договор:
    • ? платеж по договору;
    • ? туры, которые пользуются наибольшим спросом;
    • ? туры, которые приносят наибольший доход.
  • 3. Контроль исполнения:
    • ? объем работ, выполненный каждым из сотрудников;
    • ? договоры, срок действия которых заканчивается в текущем месяце.
  • 4. Бизнес-анализ:
    • ? список всех туров, сгруппированный, например, по странам, регионам, сезонам);
    • ? индивидуальные туры;
    • ? групповые туры;
    • ? число туров в каждый регион;
    • ? годовой поквартальный отчет с указанием суммы и числа договоров;
    • ? финансовый отчет и др.

Итак, в данной базе данных содержатся следующие массивы информации:

  • ? клиенты;
  • ? договоры;
  • ? страны;
  • ? сотрудники.

Проектирование базы данных. Сначала опишем объекты базы данных, определим их атрибуты и установим связи между ними. Для базы данных туристического агентства можно задать атрибуты объектов согласно табл. 8.3.

Таблица 8.3

Клиент

Страна

Код клиента

Число

Код тура

Число

Наименование

клиента

Текст

Название страны

Текст

Контактное лицо

Текст

Регион

Число

Признак группы

Да/нет

Адрес клиента

Текст

Телефон

Текст

Сотрудник

Договор

Код сотрудника

Число

Номер договора

Текст

Фамилия, имя, отчество

Текст

Дата начала тура

Дата/Время

Должность

Текст

Дата окончания тура

Дата/Время

Домашний телефон

Текст

Дата платежа

Дата/Время

Дата найма

Дата/Время

Код клиента

Число

Дата рождения

Дата/Время

Код тура

Число

Размер оклада

Число

Число туристов

Число

Цена тура

Текст

Код сотрудника

Число

Между объектами можно установить связи. Напомним, что бывает три вида связей «многие-ко-многим», «один-ко-многим» и «один-к-одному». В Access напрямую связь «многие-ко-многим» не реализуется.

Например, объекты Клиент, Страна и Сотрудник связаны с объектом Договор связями «один-ко-многим»: один клиент может заключить несколько договоров, один сотрудник выполняет работу по нескольким договорам, заказ на туры в определенную страну встречается в нескольких договорах.

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

На логическом уровне производится отображение данных концептуальной модели в логическую модель в рамках структуры данных. Логическая модель не зависит от конкретной СУБД и может быть реализована на любой СУБД реляционного типа.

Для реляционной модели базы данных каждый объект преобразуется в набор таблиц. Таблица состоит из столбцов (полей) и строк (записей).

Для этого требуется выполнить следующие действия:

  • 1) создать по одной таблице для каждой объекта;
  • 2) для каждого объекта, вступающего во взаимоотношения с другими объектами как «один-ко-многим» или «один-к-одному», указать один столбец в качестве первичного ключа;
  • 3) задать первичный ключ для каждой объекта, выступающего во взаимоотношения с другими объектами как «многие-к- одному».

Для базы данных туристического агентства проделаем следующие шаги.

  • 1. Сначала создадим четыре таблицы: Сотрудник, Клиент, Страна, Договор.
  • 2. Зададим первичные ключи для таблиц Договор, Клиент, Страна и Сотрудник, выступающих в связях как «один-ко-многим».

В реляционных БД связи между таблицами осуществляются посредством первичных ключей.

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

  • ? идентификации строк в таблице;
  • ? ускорения работы со строками таблицы;
  • ? связывания таблиц.

Таблица Договор имеет в своем составе уникальное для каждой строки поле — это Номер договора. Таблицам Клиент, Страна и Сотрудник в качестве первичных ключей назначается некоторый уникальный числовой идентификатор записи: Код клиента, Код тура, Код сотрудника. Таким образом, таблица Договор имеет внешние ключи: Код клиента, Код тура, Код сотрудника.

Физическое проектирование. Физическая модель зависит от конкретной СУБД. Одной и той же логической модели может соответствовать несколько разных физических моделей. Физическое проектирование является начальным этапом реализации БД.

Для повышения производительности реляционные СУБД используют специальные объекты, называемые индексами. Индекс упорядочен по значению ключевого поля, что позволяет системе быстро находить нужные значения. Фактически индексная структура является «оглавлением».

В реляционных СУБД таблицы всегда индексируются по полю первичного ключа. Однако нужно строить дополнительные индексы для ускорения поиска при выполнении основных запросов. Например, если предполагается осуществлять поиск по наименованию клиента — выводить контактную информацию или количество заказов для определенной компании, то нужно создать индекс по полю Наименование компании. Для поиска договора по дате окончания необходимо провести индексирование таблицы Договор по полю Дата окончания.

В таблице 8.4 перечислены индексные поля для таблиц БД туристического агентства.

Таблица 8.4

Индексированное поле

Описание

Таблица Клиент

Код клиента

Первичный ключ

Наименование клиента

Для поиска по компании

Признак группы

Для поиска по группе

Таблица Сотрудник

Код сотрудника

Первичный ключ

ФИО

Для поиска по сотруднику

Таблица Страна

Код тура

Первичный ключ

Название страны

Для поиска по названию страны

Таблица Договор

Номер договора

Первичный ключ

Дата начала тура

Для поиска договоров по дате начала тура

Дата окончания тура

Для поиска договоров по дате окончания тура

Для устранения ошибок ввода задаются условия на возможные значения поля: для поля Цена тура таблицы Договоры необходимо установить Условие на значение >0.

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

Описание таблиц БД туристического агентства. Проект БД для туристического агентства можно представить в виде полного описания свойств полей для всех таблиц. Для задания обязательности ввода данных в поле используется свойство Обязательное поле. Тип данных поля выделен в отдельный столбец, названия и значения остальных свойств перечислены в следующих двух столбцах (табл. 8.5—8.8).

Таблица Клиент

Таблица 8.5

Название поля

Тип данных

Свойства поля

свойство

значение

Код клиента

Числовой

Размер поля

Длинное целое

Индексированное поле

Да (совпадения не допуска-

ются)

Наименование

Текст

Размер поля Обязательное поле

50

клиента

Индексированное поле

Да

Да (допускаются совпадения)

Контактное

Текст

Размер поля Обязательное поле

30

лицо

Индексированное поле

Да

Нет

Признак группы

Логический

Формат поля

Да/Нет

Телефон

Текст

Размер поля Обязательное поле

20

Индексированное поле

Нет

Нет

Адрес

Текст

Размер поля Обязательное поле

255

Индексированное поле

Нет

Нет

Таблица Сотрудник

Таблица 8.6

Название поля

Тип данных

Свойства поля

свойство

значение

Код сотруд-

Числовой

Размер поля

Длинное целое

ника

Индексированное поле

Да(Совпадения не допуска-

ются)

ФИО

Текст

Размер поля Обязательное поле

30

Индексированное поле

Да

Да (Допускаются совпадения)

Должность

Текст

Размер поля Обязательное поле

30

Индексированное поле

Да

Нет

Дата найма

Дата/

Формат

Краткий формат даты

Время

Обязательное поле Индексиро-

Да

ванное поле

Нет

Дата рождения

Дата/

Формат

Краткий формат даты

Время

Обязательное поле Индексиро-

Да

ванное поле

Нет

Домашний

Текст

Размер поля Обязательное поле

20

телефон

Индексированное поле

Нет

Нет

Адрес

Текст

Размер поля Обязательное поле

255

Индексированное поле

Нет

Нет

Оклад

Числовой

Размер поля Индексированное

Длинное целое

поле

Да (Допускаются совпадения)

Таблица 8.7

Таблица Страна

Название поля

Тип данных

Свойство поля

свойство

значение

Код тура

Числовой

Размер поля Обязательное поле Индексированное поле

Длинное целое Да

Да(Совпадения не допускаются)

Страна

Текст

Размер поля Обязательное поле Индексированное поле

50

Да

Да (Допускаются совпадения)

Регион

Текст

Размер поля Обязательное поле Индексированное поле

50

Да

Нет

Таблица 8.8

Таблица Договор

Название поля

Тип данных

Свойство ПОЛЯ

Свойство

Значение

Номер договора

Числовой

Обязательное поле Индексированное поле

Да

Да (Совпадения не допускаются)

Код клиента

Числовой

Размер поля Обязательное поле Индексированное поле

Длинное целое Да

Да (Допускаются совпадения)

Поле подстановки значений из таблицы Клиент

Код тура

Числовой

Размер поля Обязательное поле Индексированное поле

Длинное целое Да

Да (Допускаются совпадения)

Поле подстановки значений из таблицы Страна

Дата начала тура

Дата/

Время

Формат

Обязательное поле Индексированное поле

Краткий формат даты Да

Да (Допускаются совпадения)

Дата окончания тура

Дата/

Время

Формат

Обязательное поле Индексированное поле

Краткий формат даты Да

Да (Допускаются совпадения)

Число туристов

Числовой

Размер поля Число дес. знаков Значение по молчанию Условие на значение Обязательное поле Индексированное поле

Целое

  • 0
  • 1

>0

Да

Нет

Цена тура

Денежный

Формат поля Обязательное поле Индексированное поле

Денежный

Нет

Нет

Дата платежа

Дата/

Время

Формат

Обязательное поле Индексированное поле

Краткий формат даты

Да

Нет

Код сотрудника

Числовой

Размер поля Индексированное поле

Длинное целое Да (Допускаются совпадения)

Поле подстановки значений из таблицы Сотрудник

Создание базы данных. При открытии системы появляется диалоговое окно, в котором предлагается выбор: создать новую базу данных или открыть существующую.

Создать БД можно следующими способами:

  • ? пустую неструктурированную БД;
  • ? пустую структурированную БД на основе шаблона.

Сделать это можно с помощью кнопки Создать и команд:

  • ? СозданиеНовая база данных;
  • ? Создание из имеющегося файла — Выбор файла;
  • ? Создание с помощью шаблона — выбор подходящего шаблона.

БД включает в себя различные объекты — таблицы, формы, запросы, отчеты, предназначенные для ввода, управления и хранения информации. Все объекты одной базы данных хранятся в одном и том же файле, имеющем стандартное расширение .mdb.

Основой базы данных является таблица, столбец которой называется полем, а строка — записью.

Форма позволяет более наглядно отобразить информацию, содержащуюся в одной записи БД.

Запросы предназначены для поиска и получения информации из БД по различным критериям.

Макрос — последовательность макрокоманд для расширения возможностей СУБД. С их помощью можно изменять ход выполнения приложения, открывать, фильтровать и изменять данные в формах и отчетах, выполнять запросы и создавать новые таблицы.

Модуль — объект, содержащий программы на языке Visual Basic.

Для печати и вывода, а также группировки, сортировки, определения итоговых значений используются отчеты.

Страницы показывают все ярлыки страниц доступа к данным в Интернете или Интранете, дают возможность ввода, редактирования, просмотра и манипулирования данными из сети.

Таблицы — основа базы данных

Создать таблицу можно несколькими способами:

  • ? в Конструкторе;
  • ? с помощью Мастера таблиц', я в Режиме таблицы',

я с помощью импортирования;

? с помощью связывания с другими БД.

Создание таблицы с помощью конструктора

Вызов Конструктора можно осуществить:

  • ? вкладка ТаблицыСоздать таблицу в режиме конструктора;
  • ? кнопка Создать в окне объектов открытой БД — Конструктор;
  • ? Вставить — Таблица — Конструктор;
  • ? кнопка Новый объект панели инструментов БД Создать — ТаблицаКонструктор.

Таблица в режиме конструктора всегда содержит три колонки. Имена полей могут содержать русские, латинские буквы, цифры без пробелов. После того как имя присвоено, следует задать Тип поля. По умолчанию выбирается тип Текстовый. Описание полей не обязательно, но добавляет наглядности БД.

Перемещение, удаление и добавление полей осуществляются с помощью мыши. Для перемещения поля его следует выделить, щелкнув мышью в области маркировки записи, и перетащить в нужное место. Для удаления поля его следует выделить и нажать клавишу Del. Чтобы выделить группу полей, следует использовать совместно с мышью клавиши Shift (для смежных полей) или Ctrl (если поля расположены не подряд). Для создания поля используется команда Вставка — Поле. Новая строка будет вставлена над строкой, в которой находится курсор. Для удаления и вставки полей можно также использовать правую кнопку мыши, выводящую контекстное меню.

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

? в контекстном меню указать Ключевое поле;

я ПравкаКлючевое поле',

я инструментом с изображением ключа.

Если поле назначено ключевым по ошибке, следует использовать команду ПравкаОтменить ключевое поле или Ctrl+Z.

В нижней части окна Конструктора указываются Свойства полей. Дня их определения надо:

  • ? установить курсор на нужное поле в верхней части окна;
  • ? перейти в нижнюю часть (F6 или мышью);
  • ? вручную ввести характеристику этого свойства или выбрать элемент из раскрывающегося списка.

Увеличение размеров области свойств осуществляется нажатием Shift+F2. Заполнение некоторых свойств можно выполнить с помощью вспомогательного окна построителя (мастера), вызываемого кнопкой Построить, расположенной справа от ячейки соответствующего свойства.

Характеристики свойств

Формат поля задает формат представления данных при выводе на экран или печать (Текстовый, Числовой, Денежный, Счетчик, Дата/Время, Логический).

Для типов данных Числовой, Денежный и Счетчик существует набор форматов:

стандартный — отсутствуют разделители тысяч и знаки валют, число десятичных знаков зависит от точности данных (устанавливается по умолчанию);

денежный или евро — символы валют и два знака после десятичного разделителя;

фиксированный — один знак до и два знака после десятичного разделителя;

с разделителями тысяч — два знака после десятичного разделителя и разделители тысяч; процентный', экспоненциальный.

Для типов Дата/Время существует набор форматов:

полный (15.04.94 05:30:10 РМ);

длинный (Среда, 15 апреля 1994);

средний (15-апр-94);

краткий (15.04.94);

длинный формат времени (05:30:10 РМ); средний формат времени (05:30 РМ); краткий формат времени (17:30).

Константы типа Дата/Время ограничиваются символами «#». Например, #01.03.57#.

Для Логического типа: Да/Нет — Yes/No (по умолчанию); Ис- тина/Ложь — True/False; Вкл./Выкл. — On/Off.

Число десятичных знаков задает число знаков после разделителя (от 0 до 15).

Размер поля задает максимальный размер данных в поле. Поле с текстовым типом может иметь размер от 1 до 255 символов (по умолчанию — 50) (табл. 8.9).

Таблица 8.9

Размер поля для числового типа данных

Тип

Размер

Байт (1 байт)

Целые числа от 0 до 255

Целое (2 байта)

Целые числа от -32768 до +32767

Длинное целое (4 байта)

Целые числа

от -2 147 483 648 до +2 147 483 647

С плавающей точкой (4 байта)

С точностью до 6 знаков от-3.4x1038 до +3.4x1038

С плавающей точкой (8 байт)

С точностью до 10 знаков от —1 797x10308 до +1 797x10308

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

При вводе маски вручную применяются символы, приведенные в табл. 8.10.

Таблица 8.10

Обязательные

Необязательные

0 — цифра

9 — цифра

L — буква

# — цифра, знак +, знак -, пробел

А — буква или цифра

а — буква или цифра

@ — любой символ или пробел

С — любой символ или пробел

<(>) — преобразует все символы справа к нижнему (верхнему) регистру

! — маску следует заполнять справа налево

! - маску следует заполнять справа налево

Вызов Мастера масок осуществляется кнопкой Построить. В появившемся окне из списка готовых масок следует выбрать подходящую.

Подпись поля определяет подпись для использования в формах и отчетах, если она отличается от имени поля.

Значение по умолчанию определяет значение, автоматически вводимое во все новые записи. Если определенное поле в большинстве случаев принимает какое-то заранее известное значение, то для таких полей можно задать значение по умолчанию, которое будет автоматически присваиваться полю при создании новой записи.

Условие на значение указывает, каким условиям должны удовлетворять значения, вводимые в данное поле. Оно задается выражением, состоящим из операторов сравнения и значений, используемых для сравнения (операндов). Большинство СУБД позволяет накладывать ограничения на значения данных в виде некоторого условия, что позволяет снизить ошибки ввода. При вводе данных производится автоматическая проверка их соответствия указанным типам и проверка выполнения заданных условий. Например, при описании поля Дата рождения ему присваивается тип Дата и задается интервал возможных значений, например: >01/01/1920 и <01/01/2000.

Сообщение об ошибке позволяет задать текст, выводимый на экран, если значение не удовлетворяет Условию на значение.

Обязательное поле определяет, может ли это поле остаться незаполненным при вводе данных.

Свойство Пустые строки позволяет хранить пустые строки в текстовых и МЕМО-полях.

Индексированное поле задает построение индекса для полей с типом данных Текстовый, Числовой, Денежный, Дата/Время и Счетчик. Назначение индекса — ускорение выполнения запросов, поиска и сортировки. Возможные значения этого свойства:

Нет — не создает индекс или удаляет существующий индекс;

Да (допускаются совпадения) — создает индекс, если в нем допускаются совпадения значений для разных записей;

Да (совпадения не допускаются) — создает уникальный индекс.

Создание таблицы с помощью мастера таблиц

Для быстрого создания таблиц используется Мастер таблиц — специальная программа, которая, задавая вопросы, обеспечивает выполнение 90% работы.

При открытой БД вызов Мастера осуществляется:

? вкладкой ТаблицаСоздать таблицу при помощи Мастера’, я кнопкой Создать в окне объектов открытой БД — Мастер таблиц',

я ВставкаТаблицаМастер таблиц',

я кнопкой Новый объект панели инструментов БД — Таблица — Мастер таблиц.

Первый экран Мастера таблиц представлен на рис. 8.4.

Создание таблицы путем ввода данных

Следует выполнить команды:

  • ? вкладка ТаблицыСоздание таблицы путем ввода данных;
  • ? кнопка Создать в окне объектов открытой БД — Режим таблицы,
  • ? ВставкаТаблицаРежим таблицы',

я кнопка Новый объектТаблицаРежим таблицы.

В появившейся пустой таблице 10 полей и 20 строк («Поле 1, «Поле 2» и т.д.). Сначала можно изменить имена полей, вызвав контекстное меню на заголовке, затем заносить информацию. Незаполненные поля в правой части таблицы MS Access проигнорирует.

При сохранении таблицы MS Access предложит создать первичный ключ для нее, но лучше установить его вручную в режиме Конструктора, а также убедиться в том, что лишние строки и столбцы удалены.

Связи между таблицами

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

Связи бывают трех типов: «один-ко-многим», «один-к-одному», «многие-ко-многим».

Главная таблица содержит первичный ключ и составляет часть «один» в отношении «один-ко-многим», подчиненная таблица содержит такой же тип информации со стороны «много» в отношении «один-ко-многим».

Связи автоматически устанавливаются Мастером подстановок. Просмотреть, установить, отредактировать связи можно командой СервисСхема данных или инструментом Схема данных на панели инструментов.

Если связи устанавливаются первично, то откроется окно Таблицы, а если повторно, то окно Изменение связей. Двойной щелчок на нужной таблице позволит перенести их в окно Изменение связей.

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

Удаление и изменение связей производится с помощью контекстного меню на линии связи, а также клавишей Del.

В окне Схема данных двойной щелчок по линии связи позволит открыть окно Изменение связей. В нем можно установить флажок у опции Обеспечение целостности данных, линия связи станет гораздо темнее, и появятся значки «1» и «оо», означающие отношение «один» или «многие».

Если система определила тип связи (в нижней части диалогового окна) «один-к-одному» или «один-ко-многим», то можно поставить флажок Обеспечение целостности данных.

Целостность данных — это набор правил, защищающих данные от случайных изменений или удалений с помощью механизма поддержки корректности связей между связанными таблицами.

Если связь определена и система взяла на себя поддержку целостности данных, то при просмотре главной таблицы (отношение «один») слева, рядом с полосой выделения появится колонка со знаками «+». Щелчок на «+» позволит открыть подчиненную таблицу (отношение «много» или «один»).

Поиск информации в базе данных

Поиск и предоставление данных из БД — одна из основных задач СУБД. Естественно, средства, позволяющие извлечь информацию, достаточно многообразны. В зависимости от информационной потребности можно использовать простые приемы поиска данных или более сложные, позволяющие формировать непростые критерии отбора.

К простейшим видам поиска относится использование команд ПравкаНайти и ПравкаЗаменить или кнопка Найти.

В условиях поиска могут быть использованы операции сравнения (>, <, <=, >~, =, О), а также подстановочные символы:

* — любая цифра или символ. Может быть первым или последним символом текстовой строки.

Например, wh* — поиск слов what, white и why;

? — любой текстовый символ.

Например, В?11 — поиск слов ball, bell и bill;

[ ] — любой один символ из заключенных в скобки.

Например, В[ае] 11 — поиск слов ball и bell, но не bill;

! — любой один символ, кроме заключенных в скобки. Например, В[!ае] 11 — поиск слов bill и bull, но не bell или ball;

--любой символ из диапазона. Нужно указывать по возрастанию (от А до Z, но не от Z до А).

Например, b[a — c]d — поиск слов bad, bbd и bed;

# — любая цифра.

Например, 1#3 — поиск значений 103,113,123.

Использование фильтров

Фильтр — это способ показать в окне только те записи БД, которые удовлетворяют требованиям пользователя.

Фильтры — это одноразовые запросы, без имени. Они просты в использовании. Можно применять фильтры к таблице, запросу или форме, но фильтруются всегда данные только одной таблицы. В фильтре отображаются все поля.

В СУБД MS Access несколько видов фильтров.

Для установки фильтров необходимо выполнить команду ЗаписиФильтр или воспользоваться одной из кнопок на панели инструментов: Применить фильтр, Изменить фильтр, Фильтр по выделенному.

Они позволяют соответственно:

  • ? установить фильтр по выделенному;
  • ? изменить фильтр;
  • ? применить/удалить фильтр.

Кроме того, существует фильтр, который устанавливается при помощи вызова контекстного меню на нужном поле таблицы — это фильтр по вводу.

Фильтр по выделенному

Необходимо выделить фрагмент содержимого нужного поля и установить фильтр одним из способов: Записи — Фильтр — Фильтр по выделенному (инструмент на панели инструментов Ху ), контекстное меню — Фильтр по выделенному. В результате останутся записи, совпадающие по этому полю или по его части.

Фильтр по форме или изменение фильтра

При использовании фильтра по форме получается свернутая в строку пустая таблица с пиктограммой списка в каждом поле, где можно задать критерий отбора. В критерии можно использовать и логические операторы AND, OR, NOT.

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

Например, если нужно в БД Туризм просмотреть только те записи, в которых Дата начала тура после 15.02.02, то нужно открыть таблицу Договоры, ЗаписиФильтрИзменить фильтр или кнопку на панели инструментов Изменить фильтр, в этом поле набрать условие >#15.02.02#, имея в виду, что константы типа Дата/ Время заключаются в #. После этого нужно нажать кнопку Применить фильтр. В результате на экране останутся только соответствующие критерию записи.

Фильтр по вводу

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

Расширенный фильтр

Вызывается командой ЗаписиФильтрРасширенный фильтр. В приведенном окне бланка фильтра пользователь имеет возможность создать фильтр, введя условия отбора, с помощью которых из всех записей в открытой форме или таблице выделяется подмножество, удовлетворяющее данным условиям. Кроме того, в бланке фильтра задается порядок сортировки для одного или нескольких полей.

Запросы

Запрос является объектом БД. Он представляет собой сформулированную информационную потребность.

При работе с запросом можно выделить два этапа: формирование (проектирование) и выполнение. При выполнении запроса выбирается информация из всех таблиц БД в соответствии с критерием запроса.

Формирование запроса производится в Конструкторе запросов командами:

? ВставкаЗапрос;

я инструментом Новый объект — Новый запрос’, я вкладка Запрос — Создать запрос с помощью Конструктора', я вкладка Запрос — кнопка Создать запрос с помощью Мастера. В верхней части окна Конструктора размещаются нужные таблицы посредством команды Запрос — Добавить таблицу или та же команда в контекстном меню. В нижней части окна расположен бланк запроса, информация в него заносится путем перетаскивания нужных полей из таблиц в верхней части окна в строку Поле или двойным щелчком мыши. При этом имя таблицы в бланке подставляется автоматически.

Наличие «галочки» в строке Вывод на экран означает присутствие данного поля в таблице результатов поиска. Критерии запроса устанавливаются в строке Условие отбора и последующих строках, связанных логическим оператором OR. Все критерии отбора, указанные в одной строке, объединяются оператором AND.

В качестве Условия отбора могут быть выражения (вычисляемое поле), даты, текст, которые вносятся либо вручную, либо инструментом, либо с помощью команды контекстного меню Построить. Константы типа Дата/Время заключаются в #.

Запросы бывают разных типов: на выборку, на создание, на обновление, на добавление, на удаление, перекрестный, итоговый, параметрический и др. По умолчанию формируется запрос на выборку. Тип запроса может быть преобразован любой другой командой Запрос или инструментом.

Выполнение запроса осуществляется командой Запрос — Запуск.

Вычисляемые поля в запросах

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

Для построения выражений имеется специальное средство — построитель выражений, вызываемый правой кнопкой мыши на поле или кнопкой Построить.

В верхней части размешается область ввода. Нижняя содержит три списка для выбора имен полей и функций.

В папке Функции размещаются встроенные функции, сгруппированные по категориям.

Параметрические запросы

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

Для этого в строку Условие отбора вводится фраза в квадратных скобках, которая будет выводиться в качестве «подсказки» в процессе диалога, например [Введите фамилию]. Таких параметров может быть несколько, каждый для своего поля.

Для каждого параметра можно указать тип данных, который корректируется командой Запрос — Параметры. При задании нескольких параметров имя каждого должно быть уникальным.

Итоговые запросы

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

Для их составления следует войти в Конструктор запросов и выбрать Вид — Групповые операции. В бланке запроса появится новая строка с наименованием Групповая операция, в ней содержится слово Группировка. В этой строке следует указать, какое вычисление необходимо выполнить.

Возможные операции в строке Групповые операции:

SUM — сложение;

AVG — среднее значение;

MIN — минимальное значение;

МАХ — максимальное значение;

COUNT — количество записей со значениями (без пустых значений);

STDEV — стандартное отклонение;

VAR — дисперсия;

FIRST — значение в первой записи;

LAST — значение в последней записи.

Перекрестные запросы

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

Для его создания нужно в Конструкторе запроса выполнить команду ВставкаЗапросПерекрестный запрос или использовать кнопку СоздатьПерекрестный запрос.

Для каждого поля такого запроса может быть выбрана одна из установок: Заголовки строк, Заголовки столбцов, Значение, которая выводится в ячейках таблицы, и Не отображается.

Для перекрестного запроса надо обязательно определить хотя бы по одному полю в качестве заголовка строк, заголовка столбцов и значения. Можно использовать дополнительные условия отбора и сортировку.

Модификация БД посредством запросов на изменение

С учетом того, что запросы на модификацию БД приводят к необратимым изменениям информации, содержащейся в БД, целесообразно выполнять их в два этапа. На первом этапе следует произвести отбор модифицируемых данных запросом на выборку, проверить правильность выборки. На втором этапе изменить статус запроса на выборку, установив его в соответствии с заданием. Затем повторно выполнить запрос с новым статусом.

Запрос на обновление

Запрос этого типа используется при необходимости внесения изменений во множество записей БД, поэтому целесообразно сделать резервную копию таблицы.

Выполняется этот вид запроса в два этапа: сначала проверяется правильность отбора обновляемых записей с помощью запроса на выборку, затем он преобразуется в запрос на обновление и выполняется повторно.

При обновлении полей следует иметь в виду, что если при проектировании таблицы в свойствах поля было указано Условие на значение, то при обновлении этого поля условие может быть нарушено, чего не допустит MS Access. Поэтому нужно или изменить условие на значение, или удалить это условие в Конструкторе.

Запрос на добавление

Периодически убирая в архивные таблицы «старые» записи, можно увеличить быстродействие основных частей и улучшить обзорность БД.

Кроме того, при необходимости добавить данные в таблицу БД из другой базы, можно также использовать запросы на добавление.

Запрос на удаление

«Старые» или неиспользуемые записи таблиц можно удалить, но обязательно сначала произвести выборку и проверить ее. Целесообразно сделать копию.

Формы в MS Access

Для организации удобного интерфейса с БД используются формы. Форма позволяет вывести на экран одну запись в виде электронного бланка. Формы могут создаваться:

  • 1) автоматически:
    • а) Вставка — Автоформа для выбранной таблицы,
    • б) вкладка Форма — кнопка Создать — Автоформа различных видов для выбранной таблицы;
  • 2) полуавтоматически с помощью Мастера форм:
    • а) вкладка ФормаСоздать с помощью Мастера,
    • б) кнопка СоздатьМастер форм',
  • 3) вручную с помощью Конструктора форм:
    • а) вкладка ФормаСоздать с помощью Конструктора,
    • б) ВставкаФормаКонструктор форм,
    • в) кнопка СоздатьКонструктор форм,
    • г) приведенным инструментом Новый объект: автоформа.

При создании формы в нее можно добавить объекты, улучшающие ее внешний вид и упрощающие работу с БД. К ним можно отнести поле ввода, надпись, кнопку, линии и прямоугольники. Большинство из них размещаются на Панели элементов. После выделения нужного элемента в панели его нужно растянуть на поле Формы.

Макет формы состоит из разделов: Область данных (содержит данные из источника), Заголовок формы (верхняя часть первой страницы), Примечание формы (нижняя часть последней страницы), Верхний и Нижний колонтитулы (при печати Формы).

При создании форм в режиме Конструктора можно использовать также вычисляемые поля и подчиненные формы.

Подчиненная форма — это форма, находящаяся внутри другой формы. Первичная форма называется главной, а форма внутри формы — подчиненной формой.

Подчиненная форма удобна для вывода из таблиц или запросов, связанных с отношением «один-ко-многим», «один-к-одному». Главная форма и подчиненная форма в этом типе форм связаны таким образом, что в подчиненной форме выводятся только те записи, которые связаны с текущей записью в главной форме.

При использовании формы с подчиненной формой для ввода новых записей текущая запись в главной форме сохраняется при входе в подчиненную форму. Это гарантирует, что записи из таблицы на стороне «многие» будут иметь связанную запись в таблице на стороне «один». Это также автоматически сохраняет каждую запись, добавляемую в подчиненную форму.

Подчиненная форма может быть выведена в Режиме таблицы как простая или ленточная форма. Главная форма может быть выведена только как простая.

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

Создать подчиненные формы можно двумя способами. Последовательность действий следующая:

  • 1) создать формы главную (отношение «один») и подчиненную (отношение «много») отдельно для каждой таблицы;
  • 2) открыть главную форму в режиме Конструктора.

Далее можно действовать по-разному (табл. 8.11).

Таблица 8.11

Способы создания подчиненных форм

Первый способ

Второй способ

Расположить окно БД и главную форму без перекрытия

Нажать кнопку Подчиненная форма/Отчет на панели элементов

В окне БД на вкладке Форма выбрать подчиненную форму и перетащить ее в главную форму

Растянуть мышью область в форме, куда будет внедряться подчиненная форма. Откроется Мастер подчиненных форм, предлагающий использование существующей формы, или существующей таблицы, или запроса

Просмотреть вид главной формы в режиме Просмотра формы

Следует выбрать нужную подчиненную форму. Если Мастер подчиненных форм не запускается, то в Свойствах объекта на вкладке Все следует указать в качестве Источника нужную подчиненную форму

Отчеты в MS Access

Для конечного пользователя данные, хранимые в таблицах и запросах, могут быть оформлены в виде отчета. Отчет позволит представить информацию на печать в желаемом формате. Его можно дополнить рисунками и графиками, которые сделают данные привлекательными. В отчете легче всего группировать и сортировать данные.

Создать новый отчет можно следующими способами:

  • 1) автоматически:
    • а) Вставка — Автоотчет для выбранной таблицы;
    • б) вкладка Отчет — кнопка Создать — Автоотчет различных видов;
  • 2) полуавтоматически с помощью Мастера отчетов:
    • а) вкладка ОтчетыСоздать с помощью Мастера;
    • б) кнопка СоздатьМастер отчетов',
  • 3) вручную с помощью Конструктора отчетов:
    • а) вкладка ОтчетСоздать с помощью Конструктора',
    • б) ВставкаОтчетКонструктор отчетов',
    • в) кнопка СоздатьКонструктор отчетов',
    • г) приведенным инструментом на панели инструментов.

Существует два основных режима работы с отчетами:

  • 1) Конструктор — для создания новых отчетов и изменения шествующих;
  • 2) Предварительный просмотр — внешний вид отчета при печати. К разделам отчета относятся — область данных, где размещаются записи из источника данных, заголовок и примечание отчета, которые только однажды размещаются соответственно в начале и конце отчета. Дополнительные разделы Заголовок и Примечание группы связаны с группировкой записей. Количество этих разделов по числу уровней группировки.

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

Группировка может быть:

? для чисел — по десяткам, сотням и другим диапазонам значений, которые задаются в свойстве Интервал',

я для текстовых полей — по первой букве, по двум первым буквам и т.д.;

? для полей типа Дата — по годам, кварталам, месяцам и т.д.

В отчетах, как и в формах, можно использовать поля, которые в режиме Мастера устанавливаются с кнопки Итоги, а в режиме Конструктора — кнопкой ab.

Почтовые наклейки являются разновидностью отчета. Для их создания выполняется команда: вкладка Отчеты — кнопка СоздатьПочтовые наклейки — выбрать источник и формат наклеек.

Обмен данными с другими приложениями

MS Access последних версий позволяет импортировать данные из других прикладных программ, таких как MS Excel, базы данных ODBC, файлов dBASE, списка SharePoint, папки OutLook, файлов HTML, а также текстовые файлы и XML-файлы.

Для импортирования следует выполнить команду Файл — Внешние данныеИмпорт. Запускаемый при этом Мастер импорта создаст на основе импортируемого файла таблицу в MS Access.

Для сохранения объекта в файле другого приложения, например MS Word, нужно выделить объект и выполнить команду СервисСвязи с OfficeПубликация в MS Word.

Если нужно использовать таблицу MS Access для создания составного документа с помощью функции слияния, то используется команда СервисСвязи с OfficeСлияние с MS Word.

Экспорт таблиц MS Access можно осуществлять в текстовый файл, файл электронных таблиц или баз данных других форматов командами Файл — Экспорт и указать тип файла, в который нужно преобразовать данные. Если есть необходимость экспортировать таблицу в формат MS Excel, то можно использовать команду СервисСвязь с OfficeАнализ данных в Microsoft Excel.

При желании можно установить связь с таблицей из другой программы для просмотра и обработки имеющихся там данных (ФайлВнешние данныеСвязать таблицы).

Использование макросов

MS Access предоставляет пользователям два средства автоматизации работы с БД: язык макросов и язык Visual Basic for Applications (VBA).

Макрос — это часто повторяющаяся последовательность макрокоманд, объединенных в одну для автоматизации работы. Макросы могут использоваться:

  • ? при работе с формами (макрос связывается с кнопкой);
  • ? для управления запуском файла MS Access (макрос Autoexec);
  • ? при работе с отчетами (использование «горячих» AutoKeys).

Для создания макроса следует в окне БД выбрать вкладку Макросы — кнопка Создать.

Окно создания макроса имеет две области: Макрокоманда раскрывающимся списком макрокоманд и Примечание. Для включения макрокоманды в макрос можно использовать два способа:

  • 1- й способ: вызвать выпадающий список, например макрокоманда Открыть форму, указать имя формы, уточнить режим данных;
  • 2- й способ: перетащить объект БД (конкретную форму) в область макрокоманд окна макроса, при этом имя объекта (формы) будет указано автоматически.

Созданный макрос следует сохранить в файле БД как Файл — Сохранить — указать имя макроса.

Запуск макроса можно осуществить следующими способами:

  • ? щелчок на кнопке Запуск на панели инструментов;
  • ? Сервис — МакросЗапуск макроса;
  • ? выбрать макрос на вкладке Макросы окна БД и нажать кнопку Запуск или двойной щелчок мыши на имени макроса.

При выполнении макроса возможна проверка различных условий.

Создание группы макросов

Группа макросов — это набор связанных макросов, который сохраняется под одним именем. С группой макросов иногда работать удобнее, чем с отдельными макрокомандами.

Для создания группы макросов нужно выполнить следующую последовательность действий:

  • ? вкладка Макросы — кнопка Создать;
  • ? добавить поле Имена макросов путем нажатия одноименной кнопки на панели инструментов или ВидИмена макросов. Появится еще один столбец в окне макроса;
  • ? в новый столбец вводится имя первого макроса, входящего в группу, в столбце Макрокоманда — одна или несколько макрокоманд;
  • ? в следующие строки вводятся последовательно имена макросов и макрокоманды, входящие в них. Имя макроса, записанное в столбце, будет именем группы. Для запуска макроса из группы нужно выполнить команду Сервис — Макрос — Запуск макроса — указать имя макроса из группы.

Комбинации клавиш для запуска макросов

Допускается связывание макрокоманды или набора макрокоманд с конкретной клавишей или сочетанием клавиш с помощью специальной группы макросов AutoKeys: Макросы — Создать — кнопка Имена макросов — в ячейке столбца Имя макроса набирается клавиша или сочетание клавиш и сохраняется под именем AutoKeys.

После этого при нажатии клавиши или сочетания клавиш будет выполняться данная макрокоманда. Новые сочетания клавиш вступят в действие сразу после сохранения макроса и будут использоваться при следующем открытии базы данных.

Создание на основе макросов меню, контекстных меню и панелей инструментов

На основе созданных групп макросов можно построить панель инструментов и контекстное меню.

Для этого нужно сделать следующее:

  • ? вкладка Макросы — выбрать имя группы макросов;
  • ? Сервис — Макрос — Создать меню из макроса/Создать контекстное меню из макроса/Создать панель инструментов из макроса.

Имена входящих в группу макросов дадут имена кнопок: на панели инструментов или пунктов меню, а имя группы даст имя новой панели или меню. При выборе конкретного пункта будут запускаться соответствующие макросы.

Вывод на экран, удаление меню или панели инструментов осуществляются стандартно: Вид — Панели инструментов — Настройка.

Все виды меню целесообразно связать с элементом или непосредственно с формой. Делается это в окне Свойство, причем свойство Строка меню задается только для самой формы, а Контекстное меню — как для формы, так и для элемента управления.

Технология связывания меню/контекстного меню с формой или элементом:

  • ? открыть нужную форму в режиме Конструктора;
  • ? открыть Свойства формы (контекстное меню на заголовке) или конкретного элемента;
  • ? вкладка Другие или Все;

я в строке Меню/Контекстное меню выбрать нужный макрос, а в строке Контекстные меню задать значение Да;

я сохранить форму.

Меню появляются на экране при работе с формой (в режимах таблицы и формы). Строка меню автоматически появляется при открытии формы, а контекстное меню вызывается стандартно правой кнопкой мыши на рабочем пространстве формы.

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

Удаление контекстного меню осуществляется путем превращения его в панель инструментов, а затем удаления этой панели. Делается это так:

? вызов окна Настройка;

я на вкладке Панели инструментов — кнопка Свойства;

я в поле Выбранная панель найти имя контекстного меню;

? изменить в поле Тип Меню на Панель инструментов;

я на вкладке Панель инструментов удалить нужную панель.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >