Использование MS Access для создания баз данных

·         Возможности СУБД MS Access.

·         Режимы работы с объектами базы данных в MS Access: оперативный режим, режим конструктора.

·         Порядок построения выражений в MS Access.

·         Операции с данными в таблице базы данных.

·         Назначение и способы создания различных объектов базы данных: форма, отчет, запрос, страница доступа к данным.

·         Использование элементов управления в объектах базы данных: форма, отчет, запрос, страница доступа к данным.

·         Использование механизма поддержки целостности данных при создании связи между таблицами.

·         Средства автоматизации операций с объектами баз данных в СУБД Microsoft Access.

·         Возможности изменения настроек и параметров СУБД MS Access.

 

Возможности Microsoft Access

Средствами Access можно выполнить следующие операции.

1.    Проектирование базовых объектов ИС - двумерных таблиц с разными типами данных, включая поля объектов OLE.

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

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

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

 

·         оптимизация пользовательского ввода и просмотра данных(формы);

·         соединение данных из различных таблиц;

·         проведение групповых операций (т.е. операций над группами записей, объединенных каким-то признаком), с расчетами и формированием вычисляемых полей;

·         отбор данных с применением аппарата логической алгебры (запросы);

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

MS Access обладает исключительно мощными, удобными и гибкими средствами визуального проектирования объектов, и это дает возможность пользователю при минимуме предварительной подготовки довольно быстро создать полноценную ИС на уровне таблиц, форм, запросов-выборок и отчетов.

В Microsoft Access 2002 имеется возможность открывать таблицы, запросы, представления, сохраненные процедуры, функции и формы в режимах сводной таблицы и сводной диаграммы. Существует возможность сохранять представления в режимах сводной таблицы и сводной диаграммы в качестве страниц доступа к данным, которые затем может просмотреть любой пользователь, на компьютере которого установлен Microsoft Internet Explorer 5 или более поздняя версия.

Microsoft Access 2002 предоставляет мощные интуитивные способы совместного использования данных XML (Extensible Markup Language), независимо от платформы, формата данных, протокола, схемы и бизнес-правил. Язык XML является не только стандартной технологией передачи данных в Интернете; он быстро превращается в предпочтительную технологию обмена данными между деловыми приложениями.

В Microsoft Access 2002 значительно усовершенствована интеграция Access и SQL Server за счет включения расширенных свойств базы данных SQL в проект Microsoft Access. Применение расширенных свойств в проектах Microsoft Access 2002 сделало возможным использование таких средств, как связи подстановок, условия на значения (также известные как ограничения), форматирование текста и подтаблицы.

 

Технология работы с MS Access

Вы можете запускать MS Access и завершать ее работу любым из стандартных способов, предусмотренных в среде Windows.

Объектом обработки MS Access является файл базы данных, имеющий произвольное имя, и расширение .MDB. В этот файл входят основные объекты MS Access: таблицы, формы, запросы, отчеты, страницы, макросы и модули.

Разработка базы данных разбивается на следующие основные этапы.

  1. Определение цели создания базы данных. На первом этапе разработки базы данных необходимо определить ее назначение и как она будет использоваться. Посоветуйтесь с будущими пользователями базы данных. Вместе с ними сформулируйте вопросы, ответы на которые вы и они хотите получать с помощью базы данных. Создайте эскизы отчетов, которые хотелось бы получить. Соберите формы, которые вы уже используете для ввода данных. По мере определения предназначения базы данных начнет формироваться перечень необходимых данных. Зная это, можно определить, какие фактические данные следует сохранять в базе данных и по каким темам распределяются эти данные. Темам должны соответствовать таблицы, а данным - поля (столбцы) в этих таблицах.
  2. Определение нужных полей в базе данных. Каждое поле содержит определенные фактические данные. Например, может потребоваться следующая информация о заказчиках: название компании, адрес, город, страна и номер телефона. Для каждого типа сведений следует создать отдельное поле. При составлении схемы полей учитывайте следующее.

·         Включайте все необходимые сведения. Разбивайте информацию на минимальные логические компоненты. Например, имена сотрудников удобно разбить на два поля — «Имя» и «Фамилия», что облегчит сортировку по фамилиям.

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

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

·         Не создавайте поля, содержащие аналогичные данные. Например, если создать в таблице «Поставщики» поля «Товар!», «Товар2»и «ТоварЗ», будет трудно найти поставщиков, поставляющих конкретный товар. Кроме того, придется изменять структуру базы данных, если появится поставщик, предлагающий четыре товара. Достаточно будет одного поля для товаров, если поместить это поле в таблицу «Товары», а не в таблицу «Поставщики».

  1. Определение таблиц, которые должна содержать база данных. Каждая таблица должна содержать информацию только на одну тему. Список нужных полей подскажет, какие требуются таблицы. Например, если будет использоваться поле «Дата Найма», оно принадлежит теме сведений о сотрудниках, т.е. должно содержаться в таблице «Сотрудники». Потребуются также таблицы «Клиенты», «Товары» и «Заказы».
  2. Определение таблиц, к которым относятся поля. При решении вопроса, к какой таблице должно относиться каждое поле, необходимо учитывать следующие принципы разработки.

·         Включайте каждое поле только в одну таблицу.

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

  1. Определение полей с уникальными значениями в каждой записи. Для связывания в Microsoft Access сведений, хранящихся в разных таблицах, например, для связывания клиента со всеми его заказами, каждая таблица базы данных должна содержать поля или набор полей, однозначно определяющих каждую запись. Такое поле или набор полей называют первичным ключом.
  2. Определение связей между таблицами. После разбиения сведений на таблицы и определения полей первичного ключа необходимо выбрать способ, которым Microsoft Access будет вновь объединять связанные сведения. Для этого следует определить связи между таблицами базы данных Microsoft Access. При этом полезно изучить связи в существующей базе данных с хорошо организованной структурой, например, в учебной базе данных «Борей».
  3. Усовершенствование структуры базы данных. После создания нужных таблиц, полей и связей необходимо еще раз просмотреть структуру базы данных и выявить возможные недочеты. Желательно это сделать на данном этапе, пока таблицы не заполнены данными.

Создайте таблицы в Microsoft Access, создайте между ними связи и введите в таблицы достаточный объем данных для проверки структуры. Чтобы проверить связи в базе данных, посмотрите, удается ли создать запросы для получения нужных сведений. Создайте черновые формы и отчеты, посмотрите, отображаются ли в них те данные, что ожидались. Выполните поиск излишних повторов данных и исключите их.

  1. Ввод данных и создание других объектов базы данных. Если структуры таблиц отвечают поставленным требованиям, то можно ввести все данные. Затем можно создать все необходимые объекты базы данных - запросы, формы, отчеты, страницы доступа к данным, макросы и модули.
  2. Использование средств анализа Microsoft Access. В Microsoft Access существуют два инструмента, помогающие усовершенствовать структуру базы данных Microsoft Access. Мастер анализа таблиц позволяет проанализировать структуру таблицы, предложить подходящие новые структуры и связи, а также разделить таблицу на новые связанные таблицы, если это имеет смысл. Анализатор быстродействия исследует всю базу данных и дает рекомендации по ее улучшению, а также может выполнить эти рекомендации.

 

Создание базы данных

Для создания базы данных в Microsoft Access можно использовать два способа. Простейший способ создания базы данных - использование мастера баз данных для создания всех необходимых таблиц, форм и отчетов. Имеется также возможность создать пустую базу данных, а затем добавить в нее таблицы, формы, отчеты и другие объекты - это наиболее гибкий способ, но он требует отдельного определения каждого элемента базы данных. В обоих случаях созданную базу данных можно в любое время изменить и расширить.

Для создания новой базы данных выберите в меню Файл команду Создать, затем в панели задач Создание файла выберите вариант Новая база данных. После этого на экране появляется стандартный файлер, в котором следует открыть нужную папку и задать имя создаваемого файла базы данных. Например, «группа .MDB». Создав файл, Access раскрывает пустое окно базы данных, и в этом окне можно будет проводить все операции - создавать и манипулировать объектами БД. MS Access является многооконным приложением, однако в любой момент может быть открыта только одна база данных. Именно ее окно является главным окном документа в приложении Access, и его закрытие означает закрытие соответствующего файла .MDB.

Рис. 1. Окно базы данных

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

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

 

Основные понятия MS Access. Объекты MS Access

Как видно из рис. 1, база данных Access может иметь следующие объекты: таблицы, запросы, формы, отчеты, страницы. Кроме того, квалифицированные пользователи могут работать еще с двумя объектами - макросами и модулями. Макрос - это набор специальных макрокоманд (например, ОткрытьФорму, ПечататьОтчет и т.п.), а модуль - это программа, написанная на языке Access Basic или Visual Basic для приложений.

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

Форма не является самостоятельным объектом MS Access: она просто помогает нам вводить, просматривать и модифицировать информацию в таблице или запросе. Запросы и отчеты выполняют самостоятельные функции: выбирают, группируют, представляют, печатают информацию. Страницы доступа к данным представляют собой специальный тип web-страниц, предназначенный для просмотра и работы через Интернет, или интрасеть с данными, хранящимися в базе данных Microsoft Access или Microsoft SQL Server. С помощью страницы пользователи могут вводить, редактировать и удалять данные из базы данных.

Каждый объект MS Access имеет имя. В Microsoft Access действуют следующие ограничения на имена полей, элементов управления и объектов (табл. 1).

·         имя должно содержать не более 64 символов;

·         имя может включать любую комбинацию букв, цифр, пробелов и специальных символов за исключением точки (.), восклицательного знака (!), надстрочного символа (') и квадратных скобок ([ ]);

·         не должно начинаться с символа пробела;

·         не должно включать управляющие символы (с кодами ASCII отО до 31);

·         не должно включать прямые кавычки (") в именах таблиц, представлений и хранимых процедур в проекте Microsoft Access.

Хотя пробелы внутри имен полей, элементов управления и объектов являются допустимыми, при некоторых обстоятельствах они могут вызывать конфликты в программах Visual Basic.

Определяя имя для поля, элемента управления или объекта, полезно проверить, не совпадает ли это имя с именем свойства или другого элемента, используемого Microsoft Access (для русских имен такая ситуация может возникнуть при совпадении с именем свойства или функции, определяемых пользователем).

Таблица 1 Типы данных, которые могут иметь поля в Microsoft Access

Тип данных

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

Размер

Текстовый

Текст или комбинация текста и чисел (например, адреса), а также числа, не требующие вычислений, (например, номера телефонов, инвентарные номера или почтовые индексы)

До 255 символов

Числовой

Числовые данные, используемые для математических вычислений, за исключением финансовых расчетов (для них следует использовать тип «Денежный»). Для более точного определения типа числа используйте свойство Размер поля (FieldSize)

1,2,4 или 8 байт. 16 байт только для кодов репликации (GUID)

Поле MEMO

Длинный текст или числа, например, примечания или описания

До 64 000 символов

Дата/время

Даты и время

8 байт

Денежный

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

8 байт

Счетчик

Автоматическая вставка последовательных (увеличивающихся на 1) или случайных чисел при добавлении записи. Этот тип поля удобно применять для первичного ключа таблицы. В качестве значений таких полей Access автоматически выбирает целые порядковые номера (1,2,...). В дальнейшем номер, присвоенный записи при ее создании, не изменяется (независимо от удаления, вставки новых записей и т.п.)

4 байта. 1 6 байт только для кодов репликации (GUID)

Логический

Поля, содержащие только одно из двух возможных значений, таких, как «Да/Нет», «Истина/Ложь», «Вкл/Выкл»

1бит

Поле объекта OLE

Объекты (например, документы Microsoft Word, электронные таблицы Microsoft Excel, рисунки, звуки и другие двоичные данные), созданные в других программах, использующих протокол OLE. Объекты могут быть связанными или внедренными в таблицу Microsoft Access. Для отображения объекта OLE в форме или отчете необходимо использовать присоединенную рамку объекта

До 1 гигабайта (ограничено объемом диска)

Гиперссылка

Поле,   в   котором   хранятся   гиперссылки, имеющие вид пути или URL-адреса

До 64 000 символов

Мастер     подстановок

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

Тот же размер, который имеет первичный ключ, являющийся также и полем подстановок; обычно - 4 байта

С каждым объектом базы данных работа выполняется в отдельном окне, причем предусмотрено два режима работы:

1.    оперативный режим, когда просматривается, изменяется или выбирается информация;

2.    режим конструктора, когда создается или изменяется макет, структура объекта (например, структура таблицы).

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

В окне базы данных под стандартной панелью инструментов расположена панель с кнопками «Открыть», «Конструктор» и «Создать», а также кнопки изменения вида представления объектов базы данных. В левой части окна отображается список вкладок (по числу объектов Access) с корешками: Таблица, Запрос, Форма, Отчет, Страницы, Макрос и Модуль. Если выбрана какая-либо вкладка, то в окне базы данных отображается список существующих объектов этого типа данной БД. Например, если выбрать вкладку Таблица, то в окне отображается список таблиц открытой базы данных. Чтобы открыть таблицу, надо выделить ее имя в этом списке и нажать кнопку «Открыть». Чтобы включить в БД новую таблицу, надо нажать кнопку «Создать». Чтобы исправить макет существующей таблицы, надо выделить ее имя в списке и нажать кнопку «Конструктор». Такие же операции выполняются со всеми другими объектами базы данных Access.

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

Примечание. Поля типов «Числовой», «Дата/время», «Денежный» и «Логический» имеют предопределенные форматы вывода данных. Формат вывода можно выбрать в ячейке Свойства Формат поля. Можно также создать собственные форматы вывода для всех типов данных, кроме объектов OLE.

 

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

Для получения справки можно воспользоваться полем Задать вопрос, командой Справка Microsoft Access в меню Справка или нажать клавишу F1. После этого на экране появится окно справки. Для просмотра содержания справки перейдите на вкладку Содержание. Для поиска по конкретным словам или фразам перейдите на вкладку Указатель. Для ввода вопроса в окне справки перейдите на вкладку Мастер ответов, задайте вопрос и щелкните кнопку «Найти». После этого в правой области окна справки будет выведен текст подсказки или в списке найденных разделов будет выведена подсказка «Перефразируйте свой вопрос». Чтобы просмотреть подсказку для команды меню, кнопки панели инструментов или области экрана, выберите в меню Справка пункт Что это такое?, а затем щелкните элемент, сведения по которому требуется просмотреть.

Чтобы просмотреть подсказку к параметру диалогового окна, нажмите в диалоговом окне кнопку с вопросительным знаком, а затем щелкните нужный параметр. (Если кнопка с вопросительным знаком не отображается, выделите параметр и нажмите клавиши Shift+F1.) Чтобы просмотреть название кнопки на панели инструментов, задержите указатель мыши на нужной кнопке, пока не отобразится ее название.

Чтобы обеспечить предоставление самых последних сведений о Microsoft Office XP, в меню Справка включена ссылки на web-сайт корпорации Microsoft.

Выражения в MS Access

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

= [СуммаЗаказа] + [СтоимостьДоставки].

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

·         Указание значения свойства, которое определяет вычисляемый элемент управления, условие на значение или задает для поля значение по умолчанию, например:

[Номер]<=25 And [Номер]>=10, [Код]=2 Or [Код]=4 Or [Код]=6.

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

·         Указание условий выполнения макрокоманды или набора макрокоманд в макросе и определение аргументов многих макрокоманд.

·         Определение аргументов для многих функций, инструкций и методов в процедурах Visual Basic для приложений.

·         Редактирование запросов SQL в режиме SQL окна запроса или определение свойств и аргументов с помощью инструкций SQL.

Операндами выражений могут быть:

·         имена полей (они записываются в квадратных скобках), например: [Цена], [Номер],[Сумма] ...;

·         числовые литералы, например: 78, 29.4;

·         текстовые литералы (они записываются в кавычках), например:«Мир», «ВАЗ»;

·         функции.

MS Access довольно «либеральна» к синтаксису выражений. Например, имя поля можно опустить, если выражение записано в столбце с этим именем; можно опустить «=» (этот знак принимается по умолчанию) и т.д.

 

Использование значений в выражениях

Для того чтобы указать значение в выражении, используют литералы, константы, функции и идентификаторы. Литералом называют значение в явном представлении, например, число, строковое значение или дату. Примерами значений в явном представлении могут служить «Москва», 123 и #3-февр-99#. Даты необходимо заключать в символы (#), а строковые значения - в прямые кавычки (").

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

Функция возвращает значение, которое является результатом расчетов или выполнения других операций. В Microsoft Access определен ряд встроенных функций, например:

·         функция Date возвращает текущую дату;

·         функция Sum возвращает сумму набора значений поля;

·         функция DLookup возвращает значение указанного поля.

В языке Visual Basic пользователь имеет возможность создавать собственные функции.

Идентификатор представляет ссылку на значение поля, элемента управления или свойства. Например, следующий идентификатор определяет ссылку на значение свойства Значение по умолчанию (DefaultValue) элемента управления «ДатаРазмещения» в форме «Заказы»:

Forms! [Заказы] ![ДатаРазмещения].DefaultValue

Оператор слияния строк & позволяет объединить значение поля, элемента управления или свойства со строкой в явном представлении. Например, в следующем выражении выполняется слияние строки «[КодТипа] =» со значением элемента управления «КодТипа» в форме «Товары»:

«[КодТипа] =» & Forms![Товары]![КодТипа]

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

Forms! [Контакты]! [Город].DefaultValue = «'Рига'»

Forms! [Контакты]! [Город] .DefaultValue = «««Рига»»»

Примеры некоторых выражений:

Арифметические:

=[Цена]* 1,06;  =[ДатаНазначения]-[ДатаИсполнения]

Текстовые:

=[Имя] & " " & [Фамилия]         =Right([КодТовара], 2)

Логические:

=IIf([Подтверждено] = «Да», «Заказ подтвержден», «Заказ не подтвержден»)= IIf(IsNull([Область]), [Город] & " " & [Индекс], [Город] & " " & [Область] & " " & [Индекс])

 

Технология разработки базы данных

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

Для создания базы данных запустите MS Access и выберите в меню Файл команду Создать, затем в панели задач Создание файла выберите вариант Новая база данных. После этого в окне Файл новой базы данных откройте нужную папку, например, Новая папка, и задайте имя создаваемого файла базы данных, например, «Группа .MDB».

 

Создание таблицы

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

Рис. 2. Определение параметров поля таблицы в режиме Конструктор

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

В столбце Имя поля введите произвольное имя поля, а в следующем столбце укажите тип данных для этого поля. Тип данных можно выбрать из раскрывающегося списка. Как только курсор оказывается в столбце Тип данных, в нижней части окна возникает бланк Свойства поля (характеристики данного поля). Он представляет собой перечень свойств (слева - название свойства, справа - значение этого свойства) с окном подсказки по каждому свойству. Перечень свойств меняется в зависимости от типа данных, который в текущий момент отображается в столбце Тип данных. Щелкнув мышью на поле значения в бланке свойств, вы можете изменить это значение (в рамках допустимого для этого типа данных). Большинство значений принимается системой по умолчанию, многие свойства можно изменить самостоятельно. Некоторые значения можно выбрать из раскрывающегося списка.

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

·         для текстового и числового поля надо указать размер поля, причем для текста это допустимая длина значения (например, 20 или 40символов), а для числа - формат представления в компьютере (байт, целое (два байта), длинное целое и т.д.);

·         для поля Дата/время обязательно надо указать формат, чтобы система знала, как обрабатывать вводимые данные. Например, если выбрать Краткий формат даты, система будет ожидать от вас ввода именно даты (в русской версии - ДД.ММ.ГГГГ), а если выбрать Краткий формат времени, в этом поле придется набирать ЧЧ:ММ (часы и минуты);

·         в качестве значения свойства Условие на значение вы можете указать логическое выражение, которое должно принимать значение True («Истина») при вводе данных в это поле. В следующем свойстве можно записать произвольное сообщение об ошибке, которое будет выдано системой, например: «Это значение поля недопустимо». Всвойстве Обязательное поле можно указать «Да» (пустые значения недопускаются) или «Нет» (пустые значения допускаются);

·         если в первичный ключ вашей таблицы входит одно поле, в свойстве Индексированное поле для него выберите: «Да, совпадения недопускаются», а затем щелкните в панели инструментов на кнопке«Определить ключ» (с изображением ключа). Тем самым вы определите первичный ключ своей таблицы (и запретите ввод записей с повторяющимся значением первичного ключа).

Итак, следуя вышеприведенным рекомендациям, определите поля таблицы. В графе Имя поля задайте имя «№ личного дела». Для определения типа данных этого поля, щелкнув стрелку в графе Тип данных, раскройте список возможных типов данных и выберите вариант Текстовый. В области окна конструктора Свойства поля выберите вкладку Размер поля и определите максимальное количество знаков для ввода в этом поле - 10 символов.

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

Действуя аналогично, введите следующие данные о других полях таблицы (табл. 2).

Завершив ввод описания полей таблицы, определите первичный ключ. Для этого, указав поле № личного дела, щелкните кнопку «Ключевое поле» в панели инструментов Стандартная.

Таблица 2. Данные о полях таблицы

Имя поля

Тип данных

Свойства (формат поля)

Фамилия

Текстовый

20 символов

Имя

Текстовый

20 символов

Отчество

Текстовый

20 символов

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

Дата/время

Длинный формат даты

Домашний адрес

Текстовый

50 символов

Класс

Текстовый

3 символа

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

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

 

Операции с данными в таблице

Ввод данных. Выбрав в окне таблицу Учащиеся, щелкните кнопку «Открыть». Установите курсор в поле № личного дела и введите значение номер, например, П-69. По окончании ввода значения поля нажмите клавишу Tab для перехода к следующему полю. В остальные поля этой записи введите остальные данные в первой записи:

 Петров; Иван; Васильевич; 12.03.89; ул. Горького, 12-34; 4А

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

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

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

Рис. 3. Заполненная таблица Учащиеся базы данных Группа

Чтобы переместить текстовый курсор в произвольную ячейку таблицы, можно просто щелкнуть на ячейке мышью. Кроме того, по таблице можно перемещаться с помощью клавиш Tab, Shift+Tab, стрелок курсора.

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

Для ввода (внедрения) объекта OLE надо щелкнуть правой кнопкой мыши на его поле в таблице и выбрать OLE-сервер из списка, как показано на рис. 2.4. После внедрения OLE-объекта отображаемым в таблице значением его поля будет название соответствующего OLE-сервера (например, Точечный рисунок). Чтобы просмотреть или отредактировать объект (или чтобы воспроизвести звукозапись), надо дважды щелкнуть на этом названии.

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

Измените структуру таблицы, вставив перед столбцом Дата рождения столбец с полем Пол. Для этого, выделив столбец Дата рождения, в меню Вставка выберите команду Столбец. Переименуйте вставленный столбец, выделив столбец Поле 1 и выбрав в меню Формат команду Переименовать столбец. После этого задайте столбцу имя Пол.

Рис. 4. Выбор OLE-сервера из списка

Для определения свойств нового поля переключите таблицу в режим Конструктора, выбрав команду Конструктор в меню Вид. Определите для поля Пол логический тип данных, а на вкладке Общие в области описания Свойства поля выберите формат Да/Нет и отредактируйте его, записав как Муж/Жен.

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

Отсортируйте записи в таблице по алфавиту фамилий, для чего, щелкнув поле Фамилия, нажмите кнопку «Сортировка» по возрастанию в панели инструментов MS Access или воспользуйтесь командой Сортировка в меню Записи. Отсортированная таблица измененной структуры будет выглядеть, как показано на рис. 5.

Рис. 5. Отсортированная по алфавиту фамилий таблица Учащиеся

Использование фильтра для отбора данных в таблице

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

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

Рис. 6. Вид записей таблицы Учащиеся с фильтром Имя=«Павел»

Чтобы снять фильтр и увидеть все записи в таблице, щелкните кнопку «Удалить фильтр» в панели инструментов Стандартная.

Рис. 7. Создание расширенного фильтра

Для отбора записей, удовлетворяющих более сложным условиям отбора, используется расширенный фильтр (рис. 7). Например, для создания фильтра, отбирающего из всех записей таблицы только те, которые удовлетворяют условиям: учащиеся, по отчеству «Семенович», родившиеся после 1 января 1989 г., выберите в меню Записи команду Фильтр и подкоманду Расширенный фильтр. После этого в верхней области окна MS Access откроется список полей таблицы Учащиеся, а в нижней области окна будет раскрыт бланк записи фильтра, как показано на рис. 7.

Добавьте в бланк поле Отчество, затем в ячейке Условие отбора для этого поля введите значение «Семенович». Чтобы указать порядок расположения отфильтрованных записей таблицы, выберите ячейку Сортировка и порядок сортировки «по возрастанию». В строке поля выберите из списка еще одно поле Дата рождения и в ячейке Условие отбора для этого поля введите условие отбора в виде логического выражения >#01.01.89#.

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

Рис. 8. Результат применения расширенного фильтра

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

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

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

2.    Если в таблице имеются какие-то коды, таблица теряет информативность: приходится иметь под рукой классификатор, чтобы понять, какому экземпляру объекта соответствует тот или иной код.

Создание и использование формы

Чтобы упростить просмотр, ввод и модификацию данных в конкретной таблице, можно создать для нее одну или несколько форм. Форма - это документ, в окне которого отображается, как правило, одна запись таблицы, причем пользователь имеет возможность по своему усмотрению разместить поля на форме. Таблица и форма — основные объекты в современных информационных системах. Они неотделимы друг от друга и размещены в одном окне документа MS Access на разных вкладках. Формы используются для следующих целей:

·         ввода/редактирования данных, помещенных в таблицу;

·         организации диалога выбора, предварительного просмотра и печати нужного отчета;

·         открытия других форм и отчетов с помощью кнопок данной формы.

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

Рис. 9. Панель элементов, используемых при создании формы

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

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

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

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

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

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

Как и любой объект MS Access, можно создать форму вручную или воспользоваться услугами Мастера форм. Форма создается для конкретной таблицы или конкретного запроса. Подробные сведения о создании и использовании форм можно получить, выбрав в справке MS Access тему «Работа с формами». Для создания формы необходимо в окне базы данных щелкнуть значок Формы в списке Объекты. Нажав кнопку «Создать» на панели инструментов окна базы данных, в диалоговом окне Новая форма выберите строку Конструктор и имя таблицы, на которой нужно основать форму, например Учащиеся, как показано на рис. 10, после чего нажмите кнопку «ОК».

Рис. 10. Окно выбора способа создания формы

Примечания:

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

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

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

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

Рис. 11. Создание формы в режиме Конструктора

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

Для одновременного перемещения нескольких объектов выделите элементы управления, удерживая прижатой клавишу Shift.

Рис. 12. Выделение и перемещение элементов управления

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

Для изменения форматирования элемента формы можно использовать кнопку «Автоформат на панели инструментов», кнопки на панели инструментов Форматирование или команды контекстного меню. Для изменения свойств поля, выбрав объект формы, щелкнем правой кнопкой мыши и в контекстном меню выберем команду Свойства. Выбирая вкладки, можно изменить свойства объекта, например, цвет, отображаемые в поле формы данные, связать с этим объектом определенные события и т.п. (рис. 13).

Рис. 13. Окно изменения свойств объекта формы

Задайте маску ввода даты, для чего, указав поле Дата рождения, выберите в контекстном меню команду Свойства. В окне Поле: Дата рождения на вкладке Данные, щелкнув строку Маска ввода, в окне Создание масок ввода выберите вариант Краткий формат даты, в поле Проба задайте вариант ввода даты для проверки избранной маски ввода. Щелкнув кнопку «Далее», отредактируйте маску ввода. Для применения созданной маски ввода щелкните кнопку «Готово».

Рис. 14. Создание заголовка формы

Создайте заголовок формы, для чего, выбрав в меню Вид команду Заголовок/примечание формы, откройте разделы Заголовок и Примечание. После этого, выбрав в панели инструментов Конструктора инструмент Надпись, укажите место в зоне заголовка формы, задайте размер надписи и введите ее текст «Учащиеся», как показано на рис. 14.

Завершите создание формы, выбрав команду Режим формы в меню Вид. После сохранения макета формы данные таблицы будут представлены, как показано на рис. 15.

Рис. 15. Представление данных в форме

Используя поле номера записи, расположенное в нижней части окна формы, можно просматривать записи таблицы. Щелкнув кнопку «Новая запись», откройте форму для создания новой записи и введите данные о новом учащемся, например: Л-23; Лынова Екатерина Михайловна; 03.08.88; 4В; ул. Смоленская, 17-35. Выбрав команду Режим таблицы в меню Вид, просмотрите изменения данных в таблице Учащиеся.

Для добавления в форму фонового рисунка откройте форму в режиме конструктора. Дважды щелкнув область выделения формы, откройте окно свойств формы. На вкладке Макет в ячейке Свойства Рисунок щелкните кнопку (...) для вызова диалогового окна. В диалоговом окне Выбор рисунка откройте нужную папку и файл. Щелкнув «ОК», завершите выбор рисунка. Далее в свойстве Тип рисунка выберите тип рисунка - внедренный или связанный.

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

Для экономии места на диске выберите тип рисунка - связанный. Поместив рисунок в форму, можно изменить его размер или выбрать фрагмент. Для этого необходимо указать в ячейке Свойства Масштабы рисунка значение Фрагмент. Для выравнивания рисунка в ячейке Свойства Выравнивание рисунка выберите вариант Сверху слева. Для того чтобы размножить рисунок по всему фону формы, установите в ячейке Свойства Мозаичное заполнение значение Да. Заполнение начинается с позиции, определяемой значением свойства Выравнивание рисунка. В результате этой операции форма будет иметь вид, показанный на рис. 16.

Рис. 16. Форма базы данных с фоновым рисунком

 

Создание и использование запроса

Для просмотра, изменения и анализа данных используются запросы. Запросы также можно использовать в качестве источников записей для форм, отчетов и страниц доступа к данным. В общем случае запрос - это вопрос о данных. В Microsoft Access есть несколько типов запросов (на выборку, запрос с параметрами, перекрестные запросы, запрос на изменение таблицы, запросы SQL).

В спроектированной нами таблице Учащиеся содержится вся информация, необходимая для решения поставленной нами задачи. Но как этой информацией пользоваться? Как узнать, например, сколько человек учится в 4А классе или у скольких учащихся день рождения в апреле? Не сидеть же перед компьютером с калькулятором, ручкой и бумагой! Решить эту проблему поможет запрос.

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

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

·         указать системе, какие поля и из каких таблиц мы хотим включить в запрос;

·         описать вычисляемые поля, т.е. поля, значения которых являются функциями значений существующих полей (например, средняя успеваемость - это среднее арифметическое значение всех оценок);

·         описать групповые операции над записями исходных таблиц (например, нужно ли объединить группу записей и указать условие отбора (мальчики из 5Б класса) в одну и просуммировать значение их роста для расчета среднего значения роста учащихся класса).

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

Создание запроса-выборки. В общем случае для создания произвольного запроса используется универсальный язык SQL (Structured Query Language — Структурный язык запросов). В предложении этого языка (Select - Выбрать) можно описать все базовые операции: какие поля и откуда выбрать, какие вычислить, как их сгруппировать (просуммировать, пересчитать, найти среднее и т.п.) и при каких условиях включить записи в выборку. Однако в реальности пользоваться этим языком могут только специалисты (или очень грамотные пользователи), а для обычных людей разработчики придумали упрощенный механизм создания запроса, называемый QBE (Query By Example – запрос по образцу). Вам предлагают бланк QBE - некую модель, заготовку запроса, и на этом бланке, пользуясь определенными правилами, вы сообщаете системе о своих планах: помечаете поля, вводите выражения, значения и т.п. На основе заполненного вами бланка система сама создает соответствующее предложение Select и сама выполняет его.

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

Для создания запроса выберите в окне базы данных Группа вкладку Запросы в списке Объекты и нажмите кнопку «Создать на панели инструментов». В диалоговом окне Новый запрос выберите мастер Простой запрос и нажмите кнопку «ОК».

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

Рис. 17. Выбор полей таблицы для формирования запроса

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

Следуя инструкциям Мастера, выберите вариант Подробный отчет и щелкните кнопку «Далее». В последнем диалоговом окне задайте имя запроса Запрос1 и запустите полученный запрос, выбрав вариант Открыть запрос для просмотра данных и щелкнув кнопку «Готово».

Выбрав команду Режим SQL в меню Вид, мы можем увидеть текст созданного запроса на языке SQL:

SELECT [Учащиеся].[Фамилия], [Учащиеся].[Имя], [Учащиеся]. [Отчество], [Учащиеся].[Дата рождения], [Учащиеся].[Пол], [Учащиеся].[Домашний адрес], [Учащиеся].[Класс] FROM Учащиеся;

Как видно из текста, в запросе на языке SQL записана команда выбора из таблицы Учащиеся и описан порядок размещения полей таблицы в таблице-результате действия запроса.

Примечание. Для получения подробной справки о создании запроса вызовите справочную систему Access и на вкладке Содержание изучите справочную информацию в разделе Работа с запросами, тема Создание запроса.

Если получился не тот запрос, который был нужен, можно снова запустить мастер или изменить этот запрос в режиме конструктора. Для изменения запроса в режиме конструктора, открыв окно запроса, щелкните кнопку «Конструктор» на панели инструментов базы данных. После этого откроется окно Конструктор запроса, показанное на рис. 18.

Рис. 18. Изменение запроса в режиме Конструктора

В верхней части этого окна показана схема данных выбранных таблиц с указанием связей и имен всех полей, в данном случае - таблица Учащиеся. В нижней части окна размещается бланк QBE, который представляет собой макет некоей таблицы. Столбцы этой таблицы соответствуют полям создаваемого запроса, а число строк переменно и зависит от состояния флажков «Имена таблиц» и «Групповую операции» (на панели инструментов или в пункте Вид). В строке Поле: указываются имена столбцов (полей) создаваемого запроса. Существующее имя можно выбрать из раскрывающегося списка (щелкнув мышью на поле) или просто перенести в ячейку Поле: методом «Drag-and-Drop» из таблицы Учащиеся в верхней части окна запроса. В первом столбце разместите поле Фамилия, во втором - Имя и т.д. В ячейке Имя таблицы: (она появляется в бланке, если установлен флажок «Имена таблиц») отображается имя таблицы, которая содержит выбранное поле (таблица Учащиеся).

Если бы в строке Поле: размещалось вычисляемое поле, тогда в ячейке этой строки нужно было бы ввести формулу: <Имя поля>: <Выражение>

Например: Стоимость: [Количество]* [Цена]

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

Если бы мы собирались проводить в запросе групповые операции (т.е. объединять записи в группы), нужно было бы включить флажок «Групповые операции» - появляется строка Групповая операция: После щелчка на любом поле этой строки появится список типов групповых операций: Группировка, Sum, Avg, Count, Выражение и др. Например, если в качестве типа групповой операции в столбце указать Count (Сосчитать), то мы получим количество записей, соответствующих запросу в этой группе.

В строках Условие отбора: и или: можно указать условные или логические выражения, которые позволят нам отобрать для запроса только записи, удовлетворяющие заданному условию. Обратите внимание на следующие соглашения, предусмотренные в Access.

1.    Условные выражения, набранные в разных столбцах строки Условие отбора: по умолчанию соединяются между собой знаком AND. Например, если соседние столбцы имеют имена Пол и Класс и вы набрали в них =Тrue и =5Б, то тем самым вы сформулировали логическое выражение: Пол =True и Класс =5Б.

2.    Условные выражения, набранные в соседних строках одного итого же столбца, соединяются между собой знаком OR. Например, если столбец имеет имя Класс и мы набрали в строке Условие отбора: =4А, а в строке или: =5А, то тем самым мы сформулировали логическое выражение: [Класс]= 4А OR [Класс]= 5А.

Измените запрос, добавив условие отбора только тех учащихся, которые не имеют мужской пол. Для этого, установив курсор в столбце Пол на строке Условие отбора и щелкнув правую кнопку мыши, откройте контекстное меню и выберите в нем команду Построить. В списке папок построителя выражений, щелкнув на папке Запрос1, раскройте список полей. Дважды щелкнув поле Пол, включите это поле в область выражений, затем, щелкнув оператор «=», включите его в выражение. Выбрав папку Константы, в списке констант дважды щелкните на значении «Ложь», как показано на рис.19.

Рис. 19. Создание логического выражения в окне Построитель выражений

Щелкнув кнопку «ОК», завершите построение логического выражения.

Выбрав в меню Вид команду Режим SQL, можно просмотреть запись созданного запроса на языке SQL:

SELECT Учащиеся.Фамилия, Учащиеся.Имя, Учащиеся.Отчество, Учащиеся.[Дата рождения], Учащиеся.Пол, Учащиеся.[Домашний адрес), Учащиеся.Класс

FROM Учащиеся

WHERE ((|Пол]=false))

ORDER BY Учащиеся.Фамилия;

Как видно из текста, в описание запроса добавлено выражение WHERE (([Пол]=false)), которое отбирает в таблице те записи об учащихся, в которых поле Пол не является мужским. После просмотра записи выберите в меню Вид команду Режим таблицы и просмотрите таблицу - результат запроса.

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

Для каждого поля, которое предполагается использовать как параметр, следует ввести в ячейку строки Условие отбора текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст приглашения должен отличаться от имени поля, но может включать его. Для поля, которое выводит даты, можно ввести приглашения следующего вида «Введите начальную дату:» и «Введите конечную дату:», чтобы задать границы диапазона значений.

Откройте созданный ранее запрос на выборку Запрос1 в режиме конструктора и удалите условие отбора [Пол] = Ложь. Выключите флажок выдачи столбца Класс на экран, а в поле Условие отбора: (в этом столбце!) наберите в квадратных скобках текст приглашения: [Какой класс]. Для просмотра результатов нажмите кнопку Вид на панели инструментов. После этого на экран будет выведено окно с приглашением ввести параметр. Введите параметр 4В и щелкните «ОК» для выполнения выборки записей из таблицы в соответствии с заданным параметром-условием.

После этого таблица-результат будет выглядеть, как показано на рис.20.

Рис.20. Результат отбора записей по условию [Класс]=«4В», заданному как параметр

Чтобы вернуться в режим конструктора запроса, снова нажмем кнопку «Вид» на панели инструментов. Отмените запрос с параметром и измените условие отбора данных, чтобы в запросе отображались данные об учащихся, родившихся летом 1988 г. Для этого восстановите флажок выдачи столбца Класс на экран, а в поле Условие отбора: (в этом столбце!) удалите текст приглашения. В ячейку строки Условие отбора поля Дата рождения введите текст условия:

[Дата рождения]>#01.06.88# AND [Дата рождения]<#01.09.88#.

Для проверки действия созданного запроса выберите команду Режим таблицы в меню Вид. Таблица-результат запроса выглядит следующим образом (рис.21).

Рис. 21. Вид таблицы-запроса об учащихся, родившихся летом 1988 г.

Применение других типов запросов мы рассмотрим при выполнении лабораторных работ.

 

Создание и использование отчета

Отчет представляет собой эффективный способ представления данных в печатном формате. Имея возможность управлять размером и внешним видом всех элементов отчета, пользователь может отобразить сведения желаемым образом. Как правило, для формирования отчета создают запрос, в котором собирают данные из разных таблиц с включением вычисляемых полей, группировкой, условиями отбора (любая операция не обязательна). Далее по общим правилам MS Access на базе такого запроса проектируют отчет, который позволяет:

·         представить данные в удобной для чтения и анализа форме;

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

·         включить в отчет и напечатать графические объекты (например, диаграммы).

Сведения, отображаемые в отчете:

·         заголовок отчета и столбцов;

·         данные, определяемые выражением, которое задается в макете отчета;

·         данные из полей базовой таблицы, запроса или инструкции SQL;

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

Для создания связи между отчетом и его исходными данными применяются элементы управления: поля, содержащие имена или числа, надписи для заголовков, декоративные линии для графического оформления отчета.

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

Как в форме, так и в отчете могут присутствовать следующие разделы:

·         заголовок;

·         верхний и нижний колонтитулы;

·         область данных;

·         примечание отчета.

Заголовок отчета выводится один раз в начале отчета и содержит в себе наиболее общие сведения: название и логотип фирмы, название отчета.

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

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

Примечание отчета выводится один раз в конце отчета и содержит итоговые данные отчета.

Размеры разделов можно изменить в режиме конструктора отчета.

В MS Access 2002 возможны следующие способы создания отчета: Автоотчет, Мастер отчетов, создание отчета в среде конструктора.

Создание отчета с помощью мастера. Для создания отчета с помощью мастера выберите в окне базы данных вкладку Отчеты в списке Объекты. Щелкнув кнопку «Создание отчета с помощью мастера», в диалоговом окне Создание отчетов выберите таблицу Учащиеся, на которой должен быть основан отчет. Включите в список Выбранные поля поля из таблицы. Для этого, указав поле в списке Доступные поля, щелкните кнопку >. Если нужно включить в список Выбранные поля все поля из списка Доступные поля, то следует щелкнуть кнопку ».

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

Завершив формирование списка Выбранные поля, щелкните кнопку «Далее». На следующем шаге диалога с Мастером отчетов определите уровни группировки полей в отчете. Пусть данные в нашем отчете будут сгруппированы по классам, для этого, выбрав поле Класс, щелкните кнопку >.

Рис. 22. Группировка записей в отчете

Щелкнув кнопку «Далее», задайте сортировку записей в группах по фамилиям в алфавитном порядке. На следующем шаге создайте макет отчета, выбрав ступенчатый вариант отчета на странице с книжной ориентацией. Включите опцию Настроить ширину полей для размещения на одной странице. Выбрав стиль оформления, задайте имя отчету и щелкните кнопку «Готово», после этого посмотрите результат на экране. На рис. 23 показан вид окна Access с созданным отчетом по таблице Учащиеся.

Обратите внимание на группировку записей по классам, а внутри группы 4В класса - упорядоченное расположение записей, отсортированных по фамилиям учащихся в алфавитном порядке.

Параметры просмотра отчета можно изменить, используя кнопки панели инструментов предварительного просмотра (аналогичный режим мы рассматривали ранее при изучении текстового процессора Microsoft Word).

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

Рис. 23. Окно MS Access с отчетом по таблице Учащиеся

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

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

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

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

 

Создание web-страницы доступа к данным

Страницы доступа к данным представляют собой специальный тип web-страниц, предназначенный для просмотра и работы через Интернет или интрасеть с данными, хранящимися в базах данных* Microsoft Access или базах данных Microsoft SQL Server. Страница доступа к данным может также включать данные из других источников, таких, как Microsoft Excel.

Примечание. Для просмотра страницы доступа к данным и работы с ней в Интернете или интрасети пользователям необходим Microsoft Internet Explorer 5, а также лицензия Microsoft Office XP.

Страницы доступа к данным разрабатываются с помощью мастера или в режиме конструктора страниц. Страница представляет собой отдельный файл, хранящийся за пределами Microsoft Access; однако при создании этого файла Microsoft Access автоматически добавляет ярлык к нему в окно базы данных. Разработка страниц доступа к данным аналогична разработке форм и отчетов: используется список полей, панель элементов, элементы управления, диалоговое окно Сортировка и группировка и т.д. Тем не менее, разработка страниц доступа к данным имеет ряд существенных отличий от разработки форм и отчетов. Способ разработки страницы зависит от ее предназначения.

Существует несколько типов страниц доступа к данным.

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

2.    Ввод данных. Этот тип страниц доступа к данным предоставляет пользователям возможности вводить, редактировать и удалять данные из базы данных.

3.    Анализ и наглядное отображение данных. Страницы доступа к данным этого типа могут включать сводные списки - аналог форм Microsoft Access или отчетов Microsoft Excel, которые позволяют реорганизовывать данные для их анализа различными способами.

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

Использование страниц доступа к данным в Internet Explorer. Страница доступа к данным непосредственно связана с базой данных. При просмотре в Microsoft Internet Explorer для пользователя отображается копия страницы. Поэтому любой отбор данных, сортировка и другие изменения способа отображения данных, включая изменения в сводном списке или электронной таблице, влияют только на копию страницы. Однако изменения в самих данных - изменение значений, добавление или удаление данных — сохраняются в исходной базе данных и поэтому доступны всем, кто просматривает страницу.

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

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

·         Текстовые поля, или поля ввода - отображают существующие данные из базы данных или, если разрешено, принимают вводимые пользователем новые данные для хранения в базе данных.

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

·         Группы - объединяют данные в наборы. Например, записи учащихся могут быть сгруппированы по классам. Название каждого класса - заголовок группы.

·         Панель перехода по записям — позволяет быстро выполнять переходы между записями либо добавлять, удалять, сохранять, отменять изменения, сортировать или фильтровать записи. На рис. 24 показана панель перехода для таблицы Учащиеся.

Рис. 24. Панель перехода по записям

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

·         Сводные списки - аналог сводных таблиц Microsoft Excel; отображают данные в виде строк и столбцов, которые можно реорганизовывать для анализа данных различными способами. Это делается путем перемещения строк в столбцы и столбцов в строки, отображения итоговых сумм на пересечении строки столбцов, а также с использованием других способов упорядочения и суммирования данных. Сводный список содержит собственную панель инструментов и встроенную справку.

·         Электронные таблицы - аналог листа Microsoft Excel; позволяют вводить и редактировать данные или выполнять вычисления с данными. Электронная таблица содержит собственную панель инструментов и встроенную справку.

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

Web-страницу можно создать следующими способами:

·         с помощью Автостраницы;

·         с помощью мастера;

·         преобразованием существующей web-страницы в страницу доступа к данным;

·         созданием страницы в режиме конструктора страниц MS Access.

Создание web-страницы доступа к данным с помощью мастера. Для создания web-страницы доступа к данным, открыв вкладку Страницы, выберите вариант Создание страницы доступа к данным с помощью мастера.

На первом шаге диалога с мастером выберите базовую таблицу Учащиеся. Выбирая в списке Доступные поля поля таблицы данных и щелкая кнопку >, включая их в список Выбранные поля, определите состав полей таблицы данных, отображаемых на странице доступа к данным. Щелкнув кнопку «Далее», перейдите к этапу определения уровней группировки. С учетом того что добавление уровней группировки приводит к тому, что страница будет доступна только для чтения, не добавляйте уровней группировки и щелкните кнопку «Далее». Затем определите порядок сортировки по алфавиту фамилий. Щелкнув кнопку «Далее», задайте название страницы Учащиеся и включите флажок Применить тему к странице. Выбрав опцию Открыть страницу, щелкните кнопку «Готово». После этого выполняется инициализация страницы доступа к данным, и через некоторое время на экране раскрывается окно Темы. Выбирая в списке Выберите тему вариант оформления страницы, просмотрите в правой области окна образец оформления, например, Перетекание. Щелкнув кнопку «ОК», завершите выбор темы оформления.

Рис.25. Окно Microsoft Access со страницей доступа к данным

Сохраните созданную страницу на диске для последующего использования. Для этого в меню Файл выберите команду Сохранить как, а затем в диалоговом окне укажите папку и имя файла, например, Страница1.htm. Для просмотра созданной страницы выберите в меню Вид команду Просмотр страницы. Если выбрана тема Перетекание, то окно Microsoft Access со страницей доступа к данным выглядит, как показано на рис.25.

Для просмотра созданной страницы доступа к данным запустите Microsoft Internet Explorer и выберите автономный режим работы. Выбрав в меню Файл команду Открыть и щелкнув кнопку «Обзор», в окне Открыть выберите папку и файл страницы доступа и щелкните кнопку «Открыть», затем, щелкнув кнопку «ОК», откройте указанную страницу в Интернет-броузере. После этого указанная страница будет загружена в окно Microsoft Internet Explorer, как показано на рис. 26.

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

Для изменения существующей страницы в MS Access щелкните ярлык Страница, а затем выберите команду Изменение существующей web-страницы.

Рис. 26. Страница доступа к данным в окне Internet Explorer

В окне конструктора страницы, выбрав на панели инструментов инструмент Поле, как указано на рис. 26 справа, укажите позицию и задайте размер нового поля. Указав поле, выберите в меню Вид команду Свойства. В окне определения свойств объекта определите исходные данные для отображения в этом поле и другие свойства поля. Действуя таким образом, задайте на странице поле, в котором будет отображаться номер личного дела. Закройте окно описания свойств нового поля и, выбрав в меню Вид команду Просмотр страницы, перейдите к просмотру страницы.

Для добавления новой записи щелкните кнопку 4*. Введите значения полей новой записи и сохраните изменения, щелкнув соответствующую кнопку в строке перехода по записям. Для сортировки записей щелкните кнопку направления сортировки. Для задания фильтра поставьте курсор в поле со значением фильтра (например, в поле Класс со значением 5Б) и щелкните кнопку Фильтр по выделенному. После этого записи на странице отфильтруются, а в строке перехода по записям будет выведено сообщение: Учащиеся 1 из 2 (всего отфильтровано две записи). Просмотрев обе записи, снимите фильтр, щелкнув кнопку «Удалить фильтр».

Просмотрите измененную страницу доступа к данным в окне Microsoft Internet Explorer, для чего запустите Internet Explorer, выберите автономный режим работы и загрузите страницу.

Выбрав в меню Вид Internet Explorer команду в виде HTML, мы можем просмотреть кодировку web-страницы на языке гипертекстовой разметки. Вид web-страницы доступа к данным на языке HTML показан на рис.27.

Рис. 27. Вид web-страницы доступа к данным на языке HTML

Оптимизация страниц доступа к данным. Существуют следующие способы повышения скорости загрузки страниц доступа к данным в режиме страницы MS Access или в Microsoft Internet Explorer.

Не создавайте перекрывающиеся элементы управления.

Не создавайте лишние рисунки и другие графические объекты. Старайтесь использовать черно-белые рисунки вместо цветных.

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

Установите для свойства Размер страницы доступа (DataPageSize) в окне Сортировка и группировка, определяющего число записей, отображаемых в группе на странице, низкое, а не высокое значение или значение Все. Чем ниже значение этого свойства, тем быстрее отображаются записи.

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

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

При использовании страниц доступа к данным в Microsoft Access закрывайте все неиспользуемые объекты базы данных.

При использовании страниц доступа к данным в Internet Explorer закрывайте все окна, которые не используются.

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

Индексируйте все поля, по которым проводятся сортировка, группировка или отбор.

На страницах доступа к данным с группировкой, содержащих записи с отношением «один-ко-многим», группируйте записи по таблице, а не по полю или выражению.

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

 

Автоматизация выполнения задач обработки данных

Изучая текстовый процессор Word и табличный процессор Excel, мы уже знакомились с автоматизацией операций в Microsoft Office. СУБД Microsoft Access для целей автоматизации операций с объектами баз данных использует два типа средств: макросы и модули.

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

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

В Microsoft Access многие действия выполняются с помощью макросов или через интерфейс пользователя. Во многих других СУБД для решения тех же самых задач требуется программирование. Выбор между созданием макроса или разработкой программы Visual Basic для приложений обычно определяется требуемыми действиями.

В каких случаях целесообразнее использовать макрос?

Макрос является удобным средством выполнения простых задач:

·         открытие и закрытие форм;

·         вывод на экран и скрытие панелей инструментов или запуск отчетов;

·         связывание различных объектов базы данных;

·         определение общих назначенных клавиш;

·         выполнение макрокоманды или набора макрокоманд при открытии базы данных.

Программы на Visual Basic используют вместо макросов в следующих случаях.

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

1.    Создание пользовательских функций. В MS Access определен ряд встроенных функций, например функция IPmt, которая рассчитывает проценты по платежам. Встроенные функции можно использовать для выполнения вычислений без необходимости разрабатывать сложные выражения. Язык Visual Basic позволяет пользователям создавать также собственные функции как для решения задач, выходящих за рамки возможных для встроенных функций, так и для замены сложных выражений, содержащих встроенные функции. Кроме того, создаваемые пользователем функции используются в выражениях для выполнения общих операций над несколькими объектами.

2.    Скрытие сообщений об ошибках. Стандартные сообщения об ошибках Microsoft Access, выводимые на экран при возникновении нештатных ситуаций во время работы с базой данных, могут оказаться малопонятными для пользователя, особенно если этот пользователь плохо знаком с MS Access. С помощью Visual Basic можно перехватывать ошибку при ее возникновении и либо выводить собственное сообщение об ошибке, либо предпринимать определенные действия.

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

4.    Выполнение действий на уровне системы. Выполнение в макросе макрокоманды ЗапускПриложения (RunApp) позволяет запускать из собственного приложения другое приложение, работающее в среде Microsoft Windows или MS-DOS, однако этим возможности использования макроса вне Microsoft Access практически исчерпываются. Средства Visual Basic позволяют проверять существование файлов, использовать программирование объектов или динамический обмен данными (DDE) для связи с другими приложениями для Windows, например Microsoft Excel, а также вызывать функции из библиотек динамической компоновки (DLL) Windows.

5.    Обработка записей по одной. Инструкции Visual Basic позволяют перебирать наборы записей по одной и выполнять определенные действия над отдельной записью. В отличие от этого макросы позволяют работать только с целым набором записей.

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

Использование модулей требует достаточно серьезной программистской подготовки. Сначала мы рассмотрим использование макросов как средств автоматизации в MS Access, используемых пользователями, не владеющими основами программирования на Visual Basic.

Макросы в Microsoft Access 2002 являются достаточно эффективным средством автоматизации, так как в этой версии СУБД представлены новые макрокоманды, с помощью которых можно открывать страницы доступа к данным и новые объекты базы данных, диаграммы, сохраненные процедуры и представления в проекте Microsoft Access (.adp).

 

Создание макроса

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

1.    В окне базы данных откройте вкладку Макросы в списке Объекты и нажмите кнопку «Создать на панели инструментов окна базы данных».

2.    В столбце Макрокоманда щелкните первую ячейку и, нажав кнопку раскрытия списка, открывающую список макрокоманд, как показано на рис.28, выберите команду Открыть таблицу. В области задания аргументов макрокоманды задайте следующие аргументы:

Имя таблицы

Учащиеся

Режим

Таблица

Режим данных

Изменение

Рис. 28. Создание макроса

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

4.    Для добавления в макрос других макрокоманд перейдите на следующую строку и повторите шаги 2 и 3.

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

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

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

Условное выражение вводится в ячейку столбца Условие в окне макроса. Если условие истинно, выполняется макрокоманда, содержащаяся в данной строке. Для того чтобы выполнить набор макрокоманд при истинности условия, следует ввести, начиная со следующей строки, многоточие (...) в ячейки столбца Условие идущих подряд макрокоманд, принадлежащих к этому набору.

Например, в макрокоманде Применить фильтр в качестве аргумента зададим условие отбора записей таблицы: [Учащиеся]![Пол]<>Истина.

Рис.29. Макрос, выполняющий отбор записей и вывод их в форме

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

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

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

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

Запустим созданный макрос Макрос1, щелкнув кнопку ! (Запуск) в панели инструментов конструктора макросов. Макрос выполнится, и в окне MS Access будет раскрыта форма Форма1 с отфильтрованными записями.

 Назначение клавиши для выполнения макрокоманды или набора макрокоманд. Допускается связывание макрокоманды или набора макрокоманд с конкретной клавишей или сочетанием клавиш с помощью специальной группы макросов AutoKeys. Сочетания клавиш, используемые для назначения клавиш в группе макросов AutoKeys, представлены в нижеследующей таблице. После этого при нажатии клавиши или сочетания клавиш Microsoft Access будет выполнять данную макрокоманду.

Примечание. Допустимые сочетания клавиш являются подмножеством синтаксиса инструкции Visual Basic SendKeys. Если макрокоманда или набор макрокоманд связывается с сочетанием клавиш, которое уже используется в MS Access (например Ctrl+C - сочетание клавиш для команды Копировать), то новое назначение макрокоманд на это сочетание клавиш заменит стандартное назначение команд MS Access.

Сочетания клавиш, используемые для назначения клавиш в группе макросов AutoKeys:

Инструкция SendKeys

Сочетание клавиш для назначения макросу

^А или ^4

Ctrl+Любая буква или цифра

{F1}

Любая функциональная клавиша

^{F1}

Ctrl+Любая функциональная клавиша

+{F1}

Shift+Любая функциональная клавиша

{INSERT}

Insert

 ^{INSERT}

Ctrl+Insert

+ {INSERT}

Shift+Insert

{DELETE} or {DEL}

Delete

^{DELETE} or ^{DEL}

Ctrl+Delete

+{DELETE} or+{DEL}

Shift +Delete

Для задания назначения макросу Макрос1 комбинации клавиш Shift+F3 в окне базы данных выберем значок Макросы в списке Объекты и нажмем кнопку «Создать». На панели инструментов нажмем кнопку «Имена макросов», затем укажем в ячейке столбца Имя макроса сочетание клавиш Shift+F3, с которыми нужно связать макрокоманду или набор макрокоманд, как показано на рис. 30.

Рис.30. Назначение клавиш макросу Макрос1

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

Для проверки действия назначенной комбинации клавиш вызова макроса Макрос! нажмем Shift+F3. Макрос будет вызван, и все его макрокоманды выполнятся.

Выполнение макрокоманд при открытии базы данных. Специальный макрос AutoExec позволяет автоматически выполнить макрокоманду или набор макрокоманд при открытии базы данных. В процессе открытия базы данных Microsoft Access выполняет поиск макроса с этим именем и, если такой макрос существует, автоматически запускает его. Для выполнения макрокоманд при открытии конкретной базы данных создайте макрос, содержащий макрокоманды, и сохраните его под именем AutoExec. При следующем открытии базы данных MS Access автоматически запустит этот макрос.

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

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

 

Использование модулей в MS Access

Теперь, когда у вас уже есть небольшой опыт создания макроса, рассмотрим пример использования модуля в MS Access. Для создания модулей необходимо иметь первоначальные знания по языку программирования Visual Basic. Прежде чем приступить к созданию модуля, рассмотрим несколько ключевых понятий. В MS Access существуют два основных типа модулей: модули класса и стандартные модули. Каждая процедура в модуле может быть либо процедурой-функцией Function, либо процедурой-подпрограммой Sub.

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

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

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

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

Для просмотра списка стандартных модулей базы данных щелкните Модули в списке Объекты в окне базы данных. Формы, отчеты и стандартные модули выводятся также в окне просмотра объектов.

Процедуры: общие сведения

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

Private Sub ОткрытиеФормыЗаказы_Сlick()

    DoCmd.OpenForm «Заказы»

End Sub

Существуют процедуры двух типов: процедура-подпрограмма Sub и процедура-функция Function.

Процедура-подпрограмма Sub, аналогично инструкциям Visual Basic, выполняет действие или набор действий, но не возвращает значение. Пользователь имеет возможность создавать процедуры Sub самостоятельно или использовать процедуры обработки событий, определенные в Microsoft Access.

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

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

Процедура-функция Function (часто такие процедуры называют просто функциями) возвращает значение, например, полученное в результате расчетов. Visual Basic включает ряд встроенных функций; например, функция Now возвращает текущее значение даты и времени. Выражения, содержащие функции, широко используются в Microsoft Access, например, в аргументах инструкций или методах Visual Basic, при указании значений свойств и при определении условий в запросах или фильтрах. В дополнение к встроенным функциям пользователь имеет возможность самостоятельно создавать функции, которые называют специальными или пользовательскими функциями.

Ниже приводится пример процедуры Function с именем «НачалоСледующегоМесяца», которая возвращает дату первого дня следующего месяца:

Function НачалоСледующегоМесяца()

     НачалоСледующегоМесяца=DateSerial(Yеаг(Now), Month(Now) +1,1)

End Function

Данная функция состоит из единственной инструкции присваивания, в которой результат выражения (стоящего справа от знака равенства) присваивается функции «НачалоСледующегоМесяца» (имя которой стоит слева от знака равенства). Результат рассчитывается с помощью встроенных функций Visual Basic DateSerial, Year, Now и Month.

После создания функции ее можно использовать в Microsoft Access в любых выражениях. Например, чтобы сделать дату первого дня следующего месяца значением, которое поле получает по умолчанию, следует в окне свойств определить свойство этого поля Значение по умолчанию (DefaultValue) с помощью следующего выражения: =НачалоСледующегоМесяца().

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

Процедуры Sub и Function могут принимать аргументы.

Создание пользовательских процедур Visual Basic для приложений. Используя в базе данных процедуры Visual Basic, можно управлять взаимодействием таблиц, форм, отчетов и запросов этой базы данных. Существует несколько типов процедур. Можно создать процедуру обработки события, добавив ее код в предопределенные шаблоны в модуле формы или модуле отчета. Можно также создавать собственные процедуры Function и процедуры Sub в стандартных модулях или в модулях класса (которые содержат модули форм и отчетов).

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

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

Чтобы открыть новый модуль класса, не связанный с формой или отчетом, выберите команду Class Module в меню Insert. Для того чтобы открыть существующий модуль класса, щелкните ярлык Модули в списке Объекты, выберите модуль, который требуется открыть, а затем нажмите кнопку «Конструктор» на панели инструментов окна базы данных.

Объявите функцию, введя инструкцию Function. Введите имя функции, а следом все аргументы функции в круглых скобках. Например, следующая инструкция описания функции IsLoaded указывает строковый аргумент strFormName:

Function IsLoaded(strFormName As String) As Boolean

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

Создание специальной процедуры Sub. Для создания специальной процедуры откройте модуль. Объявите процедуру, введя инструкцию Sub. Введите имя процедуры, а следом за ним все аргументы в круглых скобках. Например, следующая инструкция описания процедуры Sub с именем ShowEvent указывает строковый аргумент EventName:

Sub ShowEvent(EventName As String)

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

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

Для создания процедуры обработки события сделайте следующее:

1.    Откройте форму или отчет в режиме конструктора формы или режиме конструктора отчета. Выведите на экран окно свойств формы, отчета либо раздела или элемента управления в форме или отчете. Перейдите на вкладку События и выберите свойство события, в ответ на которое должна выполняться процедура. Например, для того чтобы открыть процедуру обработки события «Изменение» (Change), выберите свойство Изменение (OnChange).

2.    Нажмите кнопку построителя рядом с ячейкой свойства, чтобы открыть диалоговое окно Построитель. Дважды щелкните элемент Программы, чтобы отобразить инструкции Sub и End Sub в модуле формы или модуле отчета. Эти инструкции описывают (определяют) процедуру обработки события. Microsoft Access автоматически описывает в модуле формы или отчета процедуры обработки события для каждого объекта и события с использованием ключевого слова Private, указывающим, что доступ к этой процедуре возможен только из других процедур в том же модуле.

3.    Добавьте в процедуру программу, которая должна выполняться в ответ на событие. Например, для подачи звукового сигнала через динамик компьютера при изменении данных в поле «Название» включите инструкцию Веер в процедуру обработки события Haзвание_Change:

Private Sub Haзвание _Change()

Beep

End Sub

Процедура обработки события будет выполняться каждый раз при возникновении этого события для объекта.

Разработка модуля обработки события нажатия кнопок. Создайте модуль, обрабатывающий события нажатия двух кнопок на форме Форма_с_кнопкой. Кнопка «Мальчики» включает фильтр для отображения из таблицы Учащиеся в форме только мальчиков, а кнопка «Девочки» включает фильтр для отображения из таблицы Учащиеся в форме только девочек.

Сначала сохраним описанный ранее Макрос1, позволяющий просмотреть записи об учащихся женского пола в виде модуля. Для этого, открыв в окне конструктора Макрос!, выберем в меню Файл команду Сохранить как, а затем в диалоговом окне сохранения укажем на сохранение процедуры обработки события нажатия кнопки из макроса в виде модуля под именем Модуль!. Затем подтвердим преобразование макроса в модуль, включив добавление примечаний и процедур обработки ошибок и щелкнув кнопку «Преобразовать». После выполнения преобразования макроса в модуль на экран будет выведено сообщение об окончании преобразования, а затем раскроется окно Microsoft Visual Basic с текстом данного модуля, как показано на рис. 31.

Рис. 31. Окно Microsoft Visual Basic с текстом модуля

Как видно из этого рисунка, редактор Visual Basic представляет собой среду разработки, предназначенную для создания и редактирования программ на языке Visual Basic для приложений (VBA), содержащихся в файлах, создаваемых в приложениях Microsoft Office, включая базы данных Microsoft Access и проекты Microsoft Access. Редактор включает в себя окно проекта, окно свойств, окно просмотра объектов и окно программы, а также средства отладки. Используя команды в меню View (Вид), можно открыть соответствующие окна.

Изучив текст модуля, вы увидите, что в нем в виде процедуры Sub описаны действия: открыть таблицу Учащиеся, открыть для нее форму и задать фильтр отбора данных по условию [Пол]<>Тrue.

Выбрав в списке объектов Формы, откройте форму Форма_с_кнопкой в режиме конструктора, добавьте кнопку и задайте ей надпись «Мальчики». Вызвав контекстное меню для созданной кнопки, выберите команду Обработка событий. В окне Построитель выберите вариант Программы и щелкните «ОК». После этого в окне Visual Basic откроется окно модуля. Запишите в нем процедуру обработки щелчка этой кнопки, указав в качестве условия отбора данных [Пол]=Тrue.

Private Sub Кнопка10_Сlick()

'Открыть таблицу

DoCmd.OpenTable «Учащиеся», acNormal, acEdit

'Выделить объект - таблицу Учащиеся

DoCmd.SelectObject acTable, «Учащиеся», True

'Открыть форму Форма1

'DoCmd.OpenForm «Форма1», acNormal, "", "",, acNormal

DoCmd.OpenForm «Форма_с_кнопкой», acNormal, "", "", ,acNormal

DoCmd.ApplyFilter "", «[Учащиеся]![Пол]=Тгие»

End Sub

Закройте окно Visual Basic, сохранив измененную форму. Открыв форму и щелкая кнопки «Мальчики» или «Девочки», просмотрите отфильтрованные записи базы данных (только мальчиков или только девочек).

 

Создание кнопки с помощью мастера

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

Щелкнув кнопку «Далее», выберите в качестве формы, печатаемой нажатием данной кнопки, форму Форма1. Щелкнув кнопку «Далее», выберите размещаемый на кнопке рисунок или текст, например, рисунок принтера.

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

Если перейти в режим конструктора и, вызвав для кнопки контекстное меню, выбрать опцию Обработка событий, то раскроется окно Visual Basic со следующим текстом процедуры обработки нажатия созданной нами кнопки:

Private Sub Кнопка _Click()

On Error GoTo Err Кнопка Click

Dim stDocName As String 'описание переменной stDocName типа строка

Dim MyForm As Form           ' описание формы

stDocName = «Форма!»       ' присваивание имени формы

' активизировать форму и вывести ее на печать

Set MyForm = Screen.ActiveForm

DoCmd.SelectObject acForm, stDocName, True

DoCmd.PrintOut

DoCmd.SelectObject acForm, MyForm.Name, False

Exit_KHonKa_Click: 'выход из процедуры

Exit Sub

Err_KHonKa_Click: ' процедура вывода сообщения об ошибке MsgBox Err.Description Resume Exit_KnonKa_Click End Sub ' конец процедуры печати

Можно внести изменения в текст данной процедуры. Они будут сохранены при сохранении изменений в структуре формы.

 

Связь между таблицами и целостность данных

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

Типы связей между таблицами. При установлении связи между таблицами возможны три типа связей.

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

2.    Отношение «многие-ко-многим». При этом типе связи одной записи в таблице А могут соответствовать несколько записей в таблице В, а одной записи в таблице В - несколько записей в таблице А.Этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, которые являются внешними ключами таблиц А и В. Отношение «многие-ко-многим» по сути представляет собой два отношения «один-ко-многим» с третьей таблицей. Например, отношение «многие-ко-многим» между таблицами «Заказы» и «Товары» определяется путем создания двух отношений «один-ко-многим» с таблицей «Заказано».

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

Тип отношения в создаваемой Microsoft Access связи между таблицами зависит от способа определения связываемых полей. Отношение «один-ко-многим» создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс. Отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы. Отношение «многие-ко-многим» фактически является двумя отношениями «один-ко-многим» с третьей таблицей, первичный ключ которой состоит из полей — внешних ключей двух других таблиц.

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

Целостность данных означает:

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

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

Установить целостность данных можно, если выполнены следующие условия.

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

2.    Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных (из этого правила существуют два исключения) и иметь содержимое одного типа. Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля (FieldSize).

Исключения: 1) поле счетчика можно связывать с числовым полем, свойство Размер поля (FieldSize) которого имеет значение Длинное целое; 2) поле счетчика можно связать с числовым, если для обоих полей в свойстве Размер поля (FieldSize) задано значение Код репликации.

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

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

Установив целостность данных, необходимо следовать следующим правилам:

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

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

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

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

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

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

Если при определении отношения установить флажок Каскадное обновление связанных полей, любое изменение значения первичного ключа главной таблицы приведет к автоматическому обновлению соответствующих значений во всех связанных записях. Например, при изменении кода клиента в таблице «Клиенты» будет автоматически обновлено поле «КодКлиента» во всех записях таблицы «Заказы» для заказов каждого клиента, поэтому целостность данных не будет нарушена. Microsoft Access выполнит каскадное обновление без ввода предупреждающих сообщений.

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

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

Например, при удалении из таблицы «Клиенты» записи конкретного клиента будут автоматически удалены все связанные записи в таблице «Заказы» (а также записи в таблице «Заказано», связанные с записями в таблице «Заказы»).

Если записи удаляются из формы или таблицы при установленном флажке Каскадное удаление связанных записей, Microsoft Access выводит предупреждение о возможности удаления связанных записей.

Если же записи удаляются с помощью запроса на удаление, то Microsoft Access удаляет записи автоматически без вывода предупреждения.

 

 

Определение связей между таблицами

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

Создание связей между таблицами. Установление связей между таблицами рассмотрим на конкретном примере — базе данных Library (библиотека), состоящей из двух таблиц: Книги и Читатели, которые имеют следующую структуру (табл. 3).

Таблица 2.3 Установление связей между таблицами

Имя поля

Тип данных

Размер поля, формат

Примечание

Таблица Книги

Инвентарный номер

Числовой

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

Ключевое поле

Автор

Текстовый

30 символов

 

Название

Текстовый

50 символов

 

Год издания

Числовой

Целое число

 

Цена

Числовой

Одинарное с плавающей точкой

 

Таблица Читатели

№ личного дела

Текстовый

10 символов

Ключевое поле

Фамилия

Текстовый

30 символов

 

Имя

Текстовый

20 символов

 

Адрес

Текстовый

50 символов

 

Телефон

Текстовый

1 2 символов

 

Класс

Текстовый

3 символа

 

Книга

Числовой

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

 

Создайте таблицы Книги и Читатели указанной структуры и задайте ключевые поля. Для установления связи между таблицами Книги и Читатели выберите команду Схема данных в меню Сервис. После этого раскроется пустое окно Схема данных, а в главном меню MS Access появится новый пункт меню Связи. Выбрав в меню Связи команду Добавить таблицу, в диалоговом окне Добавление таблицы выберите вкладку Таблицы. Выбирая из списка всех таблиц открытой базы данных Library и щелкая кнопку «Добавить», добавьте в окно схемы данных таблицы Книги и Читатели. Закройте окно Добавление таблицы, щелкнув кнопку «Закрыть».

Примечание. Удерживая прижатой клавишу Ctrl, вы можете выделить (и добавить) сразу несколько таблиц. Чтобы связать таблицу саму с собой, добавьте ее дважды. Это полезно, когда нужно создать поле подстановки, использующее значения этой же таблицы. Например, в таблице Сотрудники учебной базы данных Борей определена связь между полями КодСотрудника и Подчиняется, поэтому поле Подчиняется может отображать данные о сотруднике, имеющем соответствующее значение в поле КодСотрудника. После этого в окне Схема данных будут представлены две выбранных нами таблицы, между которыми устанавливается связь.

Для установления связи между двумя таблицами можно методом «Drag-and-Drop» переместить имя поля с первичным ключом главной таблицы (Инвентарный номер) на поле Книга подчиненной таблицы. Как только вы отпустите левую кнопку мыши, на экране появится диалоговое окно Изменение связей. Для включения механизма поддержки целостности данных в связываемых таблицах установите флажок Обеспечение целостности данных, как показано на рис. 32.

После активизации флажка Обеспечение целостности данных становятся доступными два флажка каскадных операций. Включите переключатели каскадной модификации — обновления и удаления связанных записей.

Рис. 32. Определение параметров связи между таблицами

В группе Тип отношений выберите один-ко-многим и завершите создание связи, щелкнув кнопку «Создать». После этого в окне «Схема данных» появится графическое изображение установленной связи. Пометки у концов линии связи 1- ¥ означают, что одна запись таблицы Книги может иметь сколько угодно связанных записей в таблице Читатели. Закройте окно связи, сохранив изменения макета Схема данных.

Примечания.

1.     Если необходимо просмотреть все связи, определенные в базе данных, нажмите кнопку «Отобразить все связи на панели инструментов». Для просмотра связей только для определенной таблицы выберите таблицу, а затем на панели инструментов нажмите кнопку «Отобразить прямые связи». Если нужно изменить структуру таблицы, щелкните таблицу правой кнопкой и выберите команду «Конструктор таблиц». Для того чтобы просмотреть связи, определенные для конкретной таблицы, выберите эту таблицу, а затем нажмите кнопку «Отобразить прямые связи на панели инструментов».

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

Изменение или удаление существующих связей. Изменять связи между открытыми таблицами нельзя. Закройте все открытые таблицы. Переключитесь в окно базы данных и нажмите кнопку «Схема данных на панели инструментов». Если таблиц, связи которых нужно изменить, нет на экране, нажмите кнопку «Отобразить таблицу на панели инструментов» и дважды щелкните таблицы, которые нужно добавить. Дважды щелкните линию связи, которую необходимо изменить, и установите параметры связи. Для получения дополнительных сведений о конкретном параметре диалогового окна Изменение связей нажмите кнопку контекстной справки и щелкните нужный параметр.

Для удаления выделите линию связи, которую необходимо удалить (выделенная линия становится более толстой), а затем нажмите клавишу Delete и подтвердите удаление.

Удаление таблицы из окна «Схема данных». Выберите таблицу, которую необходимо удалить, а затем нажмите клавишу Delete. При этом из окна Схема данных удаляются таблица и ее линии связи. Это действие затрагивает только отображение в окне схемы данных. Сама таблица и ее связи остаются в базе данных.

Печать окна схемы данных. Для создания отчета, отображающего связи между таблицами базы данных в том виде, как они показаны в окне схемы данных, Microsoft Access использует мастер печати схемы данных. Для создания такого отчета при открытом окне Схема данных выберите в меню Файл команду Печать схемы данных. После этого раскроется окно отчета о связях между таблицами в текущей базе данных. Закройте окно отчета с сохранением, щелкнув кнопку «Да» в ответ на запрос Сохранить изменения макета отчета?, задав имя отчета, щелкните кнопку «ОК».

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

 

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

С целью создания формы для двух связанных таблиц откройте базу данных Library. Выбрав объект Формы, щелкните кнопку «Создание формы с помощью мастера».

На первом шаге диалога мастера Создание форм, выбрав таблицы Книги, а затем и Читатели, выберите для включения в форму все поля таблицы Книги, а также все поля таблицы Читатели, кроме поля Книга (это поле дублирует поле Инвентарный номер таблицы Книги) и щелкните кнопку «Далее».

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

Создание форм задайте имя для каждой из связанных форм, выберите в качестве дальнейших действий вариант Открыть форму для просмотра и ввода данных. Завершим создание форм, щелкнув кнопку «Готово». Чтобы открыть формы для двух связанных таблиц, щелкните ярлычок главной формы Книги. После этого на экране раскроется окно формы Книги с подчиненной формой Читатели, как показано на рис. 33.

Рис.33. Окно главной формы Книги с подчиненной формой Читатели

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

Можно изменить форму, разработанную с помощью мастера Создание форм. Для этого закройте форму и, указав главную форму Книги, щелкните кнопку «Конструктор» в панели инструментов. В режиме конструктора переместите и измените размеры элементов управления, их свойства. Измените надписи и другие параметры макета формы. Завершите редактирование, выбрав в меню Вид команду Режим формы.

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

В МЕНЮ

 

Используются технологии uCoz