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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ БАЗ ДАННЫХ
ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
ДЛЯ ПРАКТИЧЕСКИХ РАБОТ № 3.1 3.6
Введение. Введение. Общие сведения о базах данных (БД) и системах управления ими (СУБД)
1. Общие сведения о СУБД Microsoft Access
2. Объекты MS Access
3. Использование справки Microsoft Access
4. Выражения в MS Access
5. Технология создания базы данных в Access
6. Операции с данными в таблице
7. Создание и использование формы
8. Создание и использование запроса
9. Создание и использование отчета
10. Создание Web-страницы доступа к данным
11. Выполнение обработки данных с помощью макрокоманд
12. Создание макроса
13. Использование модулей в MS Access
14. Создание кнопки с помощью мастера
15. Связь между таблицами и целостность данных
Введение. Общие сведения о базах данных (БД) и системах управления ими (СУБД)
Основа информационной системы, объект ее обработки - база данных (БД). База данных - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области или разделе предметной области. Например, база данных по вузам (высшее образование), база данных по лекарственным препаратам (медицина), база данных по автомобилям (ГИБДД), база данных по стройматериалам (склад) и т.п. Синоним термина «база данных» - «банк данных».
Ядром любой базы данных является модель данных, которая представляет собой структуру данных, соглашения о способах их представления и операций манипулирования ими. Модель данных представляет собой формализованное описание объектов предметной области и взаимосвязей между ними.
Различают три основных типа моделей данных: иерархическая, сетевая и реляционная. Иерархическая структура представляет собой совокупность элементов, в которой данные одного уровня подчинены данным другого уровня, а связи между элементами образуют древовидную структуру. Примером иерархической базы данных может служить генеалогическое древо вашей семьи. Существуют сетевые структуры, в которых каждый порожденный элемент может иметь более одного порождающего элемента. Сетевая модель данных отличается от иерархической тем, что каждый элемент сетевой структуры данных связан с любым другим элементом. Примером сложной сетевой структуры может служить структура базы данных, содержащая сведения об учащихся, занимающихся в различных кружках. Наиболее удобным и для пользователя, и для компьютера является представление данных в виде двумерной таблицы - подавляющее большинство современных информационных систем работает именно с такими таблицами. Базы данных, которые состоят из двумерных таблиц, называются реляционными (по-английски «relation» - отношение). Основная идея реляционного подхода состоит в том, чтобы представить произвольную структуру данных в виде простой двумерной таблицы. Примером реализации реляционной модели данных может быть таблица с информацией об учащихся.
Рассмотрим основные структурные элементы базы данных..
1. В реляционных БД любые совокупности данных представляются виде двумерных таблиц (отношений), подобных описанному выше списку учащихся. При этом каждая таблица состоит из фиксированного числа столбцов и некоторого (переменного) количества строк. Описание столбцов принято называть макетом таблицы.
2. Каждый столбец таблицы представляет поле - элементарную единицу логической организации данных, которая соответствует единице информации - реквизиту объекта данных (например, фамилия учащегося, адрес).
Для описания поля используются характеристики:
имя поля (например, № личного дела, Фамилия);
тип поля (например, символьный, дата);
• дополнительные характеристики (длина поля, формат, точность). Например, поле Дата рождения может иметь тип «дата» и длину (6 цифр и 2 точки, разделяющих в записи даты день, месяц и год).
3. Каждая строка таблицы называется записью. Запись логически объединяет все поля, описывающие один объект данных, Система нумерует записи по порядку: 1, 2, ..., n, где n- общее число записей (строк) в таблице на данный момент. В отличие от количества полей (столбцов) в таблице, количество записей в процессе эксплуатации БД может как угодно меняться (от нуля до миллионов). Количество полей, их имена и типы тоже можно изменить, но это уже особая грация, которая называется изменением макета таблицы.
В современной технологии баз данных для создания баз данных, их поддержки и обслуживания используется специализированное программное обеспечение - системы управления баз данных (СУБД). СУБД - это комплекс программных и языковых средств, необходимых для создания и эксплуатации баз данных.
На этапе разработки баз данных СУБД служит для описания структурной базы данных: определения таблиц, определения количества полей, типа данных, отображающихся в них, размеров полей, определения связей между таблицами. Помимо таблиц большинство СУБД предусматривает создание специальных средств для работы с данными: форм, запросов.
Во время эксплуатации баз данных СУБД обеспечивает редактирование структуры базы данных, заполнение ее данными, поиск, сортировку, отбор данных по заданным критериям, формирование отчетов.
Среди современных реляционных систем наиболее популярна СУБД для Windows - Access фирмы Microsoft, Approach фирмы Lotus, Paradox фирмы Borland. Многие из этих систем поддерживают технологию OLE и могут манипулировать не только числовой и текстовой информацией, но и графическими образами (рисунками, фотографиями) и даже звуковыми фрагментами и видеоклипами. Перечисленные СУБД часто называют настольными, имея в виду сравнительно небольшой объем данных, обслуживаемых этими системами. Однако с ними часто работают не только индивидуальные пользователи. но и целые коллективы (особенно в локальных вычислительных сетях).
Вместе с тем в центр современной информационной технологии постепенно перемещаются более мощные реляционные СУБД с так называемым SQL-доступом. В основе этих СУБД лежит так называемая технология «клиент-сервер». Среди ведущих производителей таких систем - фирмы Oracle, Centura (Gupta), Sybase, Informix, Microsoft и др.
Информационные системы работают со следующими основными типами данных.
Текстовые данные. Значение каждого текстового (символьного) данного представлено совокупностью произвольных алфавитно-цифровых символов, длина которой чаще всего не превышает 255 (например, 5, 10. 140). Текстовыми данными представляют в ИС фамилии и должности людей, названия фирм, продуктов, приборов и т.д. В частном случае значение текстового данного может быть именем какого-то файла, который содержит неструктурированную информацию произвольной длины (например, биографию или фотографию объекта). Фактически это структурированная ссылка, позволяющая резко расширить информативность вашей таблицы.
Числовые данные. Данные этого типа обычно используются для представления атрибутов, со значениями которых нужно проводить арифметические операции (весов, цен, коэффициентов и т.п.). Числовое данное, как правило, имеет дополнительные характеристики, например: целое число длиной 2 байта, число с плавающей точкой (4 байта) в фиксированном формате и др. Разделителем целой и дробной части обычно служит точка.
Данные типа даты и (или) времени. Данные типа даты задаются в каком-то известном машине формате, например, ДД.ММ.ГГ (день, месяц, год). С первого взгляда - это частный случай текстового данного. Однако использование в ИС особого типа для даты имеет следующие преимущества. Во-первых, система получает возможность вести жесткий контроль (например, значение месяца может быть только дискретным в диапазоне 01-12). Во-вторых, появляется возможность автоматизированного представления формата даты в зависимости от традиций той или иной страны (например, в США принят формат ММ-ДД-ГГ). В-третьих, при программировании значительно упрощаются арифметические операции с датами (попробуйте, например, вручную вычислить дату спустя 57 дней после заданного числа). Те же преимущества имеет использование данного типа времени.
Логические данные. Данное этого типа (иногда его называют булевым) может принимать только одно из двух взаимоисключающих значений - True или False (условно: 1 или 0). Фактически это переключатель, значение которого можно интерпретировать как «Да» и «Нет» или как «Истина» и «Ложь». Логический тип удобно использовать для тех атрибутов, которые могут принимать одно из двух взаимоисключающих значений, например: наличие водительских прав (да-нет), военнообязанный (да-нет) и т.п.
Поля объекта OLE. Значением таких данных может быть любой объект OLE, который имеется на компьютере (графика, звук, видео). В частности, в список учащихся можно включить не только статическую фотографию учащегося, но и его голос.
Пользовательские типы. Во многих системах пользователям предоставляется возможность создавать собственные типы данных, например: «День недели» (понедельник, вторник и т.д.), «Адрес» (почтовый индекс - город - ...) и др.
В частном случае значение текстового данного может быть совокупностью пробелов, а значение числового данного - нулем. Если же в многих системах пользователю важно зафиксировать отсутствие данных для каких-то экземпляров объекта (например, отсутствие адреса, «Адрес is Null»). Если случайно ввести в такую строку таблицы пробел, система сочтет, что адрес задан, и данный экземпляр не попадет в список объектов с отсутствующими адресами.
1. Общие сведения о СУБД Microsoft Access
MS Access - это система управления реляционными базами данных, предназначенная для работы на автономном ПК или в локальной вычислительной сети под управлением Microsoft Windows. Другими словами, MS Access - это набор инструментальных средств для создания и эксплуатации информационных систем. Средствами Access можно выполнить следующие операции.
оптимизация пользовательского ввода и просмотра данных (формы);
соединение данных из различных таблиц;
проведение групповых операций (т.е. операций над группами записей, объединенных каким-то признаком), с расчетами и формированием вычисляемых полей;
отбор данных с применением аппарата логической алгебры (запросы),
составление печатных отчетов по данным, которые содержатся втаблицах и запросах БД.
MS Access обладает исключительно мощными, удобными и гибкими средствами визуального проектирования объектов, и это дает возможность пользователю при минимуме предварительной подготовки довольно быстро создать полноценную ИС - на уровне таблиц, форм, запросов-выборок и отчетов.
Вы можете запускать MS Access и завершать ее работу любым из стандартных способов, предусмотренных в среде Windows
Рис. 1. Окно выбора варианта начала работы
Объектом обработки MS Access является файл базы данных, имеющий произвольное имя и расширение .MDB. В этот файл входят основные объекты MS Access: таблицы, формы, запросы, отчеты, страницы, макросы и модули. Как показано на рис. 1, после загрузки Access ожидает от вас одного из следующих распоряжений:
либо создать новую базу данных, т.е. файл с расширением .MDB;
либо открыть существующую базу данных, т.е. файл с расширением .MDB.
Создание БД. После выбора варианта Создание новой базы данных или команды Файл - Создать... на экране появляется стандартный файл, в котором следует открыть нужную папку и задать имя базы данных мы выбрали папку Мои документы, а имя файла - группа.IV1DB.
Создав файл, Access раскрывает пустое окно базы данных и в этом окне можно будет проводить все операции - создавать и манипулировать объектами БД.
MS Access является многооконным приложением, однако в любой момент может быть открыта только одна база данных. Именно ее окно является главным окном документа в приложении Access, и его закрытие означает закрытие соответствующего файла .MDB.
Окно базы данных порождает множество дочерних окон объектов (таблицы, запроса, формы и т.д.), и каждое такое окно может быть закрыто автономно - любым из стандартных способов Windows.
Кроме того, не закрывая окна, вы можете сохранить объект (например, макет таблицы), окно которого находится на экране, и присвоить ему имя - точно так же, как это делается с файлами: командой Файл-Сохранить или Файл-Сохранить как....
С окном любого объекта (дочерним окном) можно работать либо в оперативном режиме (например, вводить или просматривать данные в таблице), либо в режиме конструктора (например, изменять макет таблицы).
2. Объекты MS Access
Как видно из рис. 12.3, база данных Access может иметь следующие объекты: таблицы, формы, запросы, отчеты, страницы. Кроме того, квалифицированные пользователи могут работать еще с двумя объектами: макросами и модулями. Макрос - это набор специальных макрокоманд (например, ОткрытьФорму, ПечататьОтчет и т.п.), а модуль - это программа, написанная на языке Access Basic или Visual Basic для приложений.
Таблица является базовым объектом MS Access. Все остальные объекты являются производными и создаются нами только на базе ранее подготовленных таблиц.
Форма не является самостоятельным объектом Access: она просто помогает вводить, просматривать и модифицировать информацию в таблице или запросе. Запросы и отчеты выполняют самостоятельные функции: выбирают, группируют, представляют, печатают информацию. Страницы доступа к данным представляют собой специальный тип Web-страниц, предназначенный для просмотра и работы через Интернет или интрасеть с данными, хранящимися в базе данных Microsoft Access или Microsoft SQL Server. С помощью страницы пользователи могут вводить, редактировать и удалять данные из базы данных.
Каждый объект MS Access имеет имя. В Microsoft Access действуют следующие ограничения на имена полей, элементов управления и объектов:
Рис. 2. Окно базы данных группа с объектами
имя должно содержать не более 64 символов;
имя может включать любую комбинацию букв, цифр, пробелов испециальных символов за исключением точки (.), восклицательного знака (!), надстрочного символа (") и квадратных скобок ([ ]);
не должно начинаться с символа пробела;
не должно включать управляющие символы (с кодами ASCII от 0 до 31);
не должно включать прямые кавычки (") в именах таблиц, представлений и хранимых процедур в проекте Microsoft Access.
Хотя пробелы внутри имен полей, элементов управления и объектов являются допустимыми, при некоторых обстоятельствах они могут вызывать конфликты в программах Visual Basic.
Определяя имя для поля, элемента управления или объекта, полезно проверить, не совпадает ли это имя с именем свойства или другого элемента, используемого Microsoft Access (для русских имен такая ситуация может возникнуть при совпадении с именем свойства или функции, определяемых пользователем).
С каждым объектом базы данных работа выполняется в отдельном окне, причем предусмотрено два режима работы:
1) оперативный режим, когда просматривается, изменяется или выбирается информация;
2) режим конструктора, когда создается или изменяется макет, структура объекта (например, структура таблицы).
Кроме этого, в файл базы данных входит еще один документ, имеющий собственное окно: Схема данных. В этом окне мы создаем, просматриваем, изменяем и разрываем связи между таблицами. Эти связи помогают нам контролировать данные, создавать запросы и отчеты.
В окне базы данных мы видим три командные кнопки (Открыть, Конструктор и Создать) и семь вкладок (по числу объектов Access) с корешками: Таблица, Запрос, Форма, Отчет, Страницы, Макрос и Модуль. Если выбрана какая-либо вкладка, то в ее окне отображается список существующих объектов этого типа данной БД.
Например, если выбрать вкладку Таблица, то в окне отображается список таблиц открытой базы данных. Чтобы открыть таблицу, надо выделить ее имя в этом списке и нажать кнопку Открыть. Чтобы включить в БД новую таблицу, надо нажать кнопку Создать. Чтобы исправить макет существующей таблицы, надо выделить ее имя в списке и нажать кнопку Конструктор.
Такие же операции выполняются со всеми другими объектами базы данных Access.
Если выбрать команду Правка-Схема данных... (или нажать соответствующую кнопку панели инструментов), на экране появится окно документа Схема данных.
Набор пунктов горизонтального меню и состав панелей инструментов зависят от типа и режима окна документа, которое в данный момент активно. Например, окно таблицы в оперативном режиме имеет кнопке Вырезать, Сортировать по возрастанию и др., а в режиме конструктора- кнопки Свойства, Определить ключ и др. Работа с панелями инструментов подчиняется стандарту Windows.
3. Использование справки Microsoft Access
Microsoft Access имеет мощную справочную систему. При возникновении вопросов можно обратиться к помощнику Office. Во время работы помощник автоматически предоставляет разделы справки и советы по выполняемым задачам - даже без обращения с вопросом. Например, при разработке отчета помощник автоматически выводит названия разделов, помогающих в создании и разработке отчета.
Для получения справки можно воспользоваться командой Справка по Microsoft Access в меню Справка или нажать клавишу F1. Если помощник включен, он появится на экране. Если помощник отключен, на экране появится окно справки, показанное на рис. 3.
Для просмотра содержания справки перейдите на вкладку Содержание. Для поиска по конкретным словам или фразам перейдите на вкладку Указатель. Для ввода вопроса в окне справки перейдите на вкладку Мастер ответов, задайте вопрос и щелкните кнопку Найти. После этого в правой области окна справки будет выведен текст подсказки или в списке найденных разделов будет выведена подсказка «Перефразируйте свой вопрос». Чтобы просмотреть подсказку для команды меню, кнопки панели инструментов или области экрана, выберите в меню Справка пункт Что это такое?, а затем щелкните элемент, сведения по которому требуется просмотреть.
Рис. 3. Окно справки Microsoft Access
Чтобы просмотреть подсказку к параметру диалогового окна, нажмите в диалоговом окне кнопку с вопросительным знаком, а затем щелкните нужный параметр. (Если кнопка с вопросительным знаком не отображается, выделите параметр и нажмите клавиши Shift + F1.) Чтобы просмотреть название кнопки на панели инструментов, задержите указатель мыши на нужной кнопке, пока не отобразится ее название. Чтобы обеспечить предоставление самых последних сведений о Microsoft Office 2000, в справку включены ссылки на другие справочные источники. Например, сведения в каком-либо разделе справки могут быть дополнены сведениями соответствующей Web-страницы, например, с Web-узла Microsoft Office Update. При этом можно получить доступ к службам технической поддержки и загрузить бесплатные расширения продукта. Для подключения к Web-узлам корпорации Microsoft из любой программы Office используется команда Office на Web из меню Справка.
4. Выражения в 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
Оператор слияния строк & позволяет объединить значение поля, элемента управления или свойства со строкой в явном представлении. Например, в следующем выражении выполняется слияние строки «[КодТипа] =» со значением элемента управления «КодТипа» в форме «Товары*: "[КодТипа] = " & РоишЦТоварыЩКодТипа]
Для того чтобы получить в выражениях строку, заключенную в кавычки, следует либо использовать вложенные строки в одинарных кавычках, либо использовать тройные пары прямых кавычек. Например, следующие выражения являются эквивалентными: Рогт8![Контакты]![Город].ВеГаиИУа1ие = " 'Рига'" Forms![KoHTaKTbi]![Город].DefaultValue = """Рига"""
Примеры некоторых выражений:
Арифметические:
=[Цена]* 1,06;
=[ДатаНазначения]-[ДатаИсполнения]
Текстовые:
=[Имя] & " " & [Фамилия]
=Right([KoдТовара], 2)
Логические:
=IIF[Подтверждено] = "Да", ''Заказ подтвержден", "Заказ не подтвержден")
=IIf(IsNull([Область), [Город] & " " & [Индекс], [Город] & " " & [Область] & " " & [Индекс])
5. Технология создания базы данных в Access
Любой объект базы данных можно создать либо вручную, либо с помощью Мастера. При создании базы данных, как правило, выполняется следующая последовательность шагов:
1. Сначала мы должны выполнить проектирование базы данных, которое заключается в следующем:
определение цели создания базы данных (назначение базы данных,как она будет использоваться, и какие сведения она должна содержать);
определение таблиц, которые должна содержать база данных (определить, какие сведения будут храниться в таблицах);
определение полей в таблице;
определение ключевых полей;
определение связей между таблицами.
4. Если структуры таблиц отвечают поставленным требованиям, то можно ввести все данные. Затем можно создать все необходимые объекты базы данных (формы, отчеты, запросы, страницы доступа к данным).
5. В заключение можно выполнить разработку макросов и программ на языке Visual Basic для приложений, с помощью которых объекты базы данных объединяются в единое приложение. В приложении связанные между собой задачи организуются таким образом, чтобы пользователи могли сконцентрироваться на конкретной работе, а не на изучении механизма работы приложения или программ, обеспечивающих его работу.
Рассмотрим технологию разработки базы данных на примере БД Группа.
Определим цель создания данной базы - хранение сведений об учащихся. В качестве базового объекта базы данных определим таблицу, в которой будут храниться следующие данные об учащихся: № личного дела, фамилия, имя, отчество, дата рождения, домашний адрес, класс. Для их размещения определим одноименные поля таблицы. В качестве ключа таблицы зададим поле № личного дела.
Для создания базы данных запустим Access. Как показано на рис. 1, в диалоговом окне выберем вариант создать новую базу данных, затем в окне Файл новой базы данных откроем папку Новая папка и зададим имя Группа для создаваемой базы данных.
Создание таблицы. Для создания таблицы выберем окно базы данных (для переключения в окно базы данных из других окон нажмите клавишу F11).
Выберем значок Таблицы в списке Объекты и щелкнем кнопку Создать на панели инструментов окна базы данных. Из предложенных способов создания выберем вариант Конструктор, для чего дважды щелкнем мышью указанную строку, как показано на рис. 4.
Рис. 4. Выбор способа создания таблицы
После этого в окне Access раскроется окно таблицы в режиме конструктора, как показано на рис. 5. В верхней части окна находится создаваемый или модифицируемый макет таблицы, который представляет собой просто список полей с указанием имени поля, типа данных и описания.
В столбце Поле вы набираете произвольное имя поля, а в следующем столбце указываете тип данных для этого поля. Тип данных можно выбрать из раскрывающегося списка. Как только курсор оказывается в столбце Тип данных, в нижней части окна возникает бланк свойств (характеристик) данного поля. Он представляет собой перечень свойств (слева название свойства, справа - значение этого свойства) с окном подсказки по каждому свойству. Перечень свойств меняется, в зависимости от типа данных, который в текущий момент отображается в столбце Тип данных. Щелкнув мышью на поле значения в бланке свойств, вы можете изменить это значение (в рамках допустимого для этого типа данных). Большинство значений принимается системой по умолчанию, многие свойства можно изучить самостоятельно. Некоторые значения можно выбрать из раскрывающегося списка.
Рис. 5. Определение параметров поля таблицы
в режиме конструктора
При выборе значения свойства принципиально важно следовать следующим рекомендациям.
Для текстового и числового поля надо указать размер поля, причем для текста - это допустимая длина значения (например, 20 или 40 символов), а для числа - формат представления в машине (байт, целое (два байта), длинное целое и т.д.).
Для поля Дата/время обязательно надо указать формат, чтобы система знала, как обрабатывать вводимые данные. Например, если выбрать Краткий формат даты, система будет ожидать от вас ввода именно даты (в русской версии - ДД.ММ.ГГГГ), а если выбрать Краткий формат времени, в этом поле придется набирать ЧЧ:ММ (часы и минуты).
В качестве значения свойства Условие на значение вы можете указать логическое выражение, которое должно принимать значение Trut («Истина») при вводе данных в это поле. В следующем свойстве можно записать произвольное сообщение об ошибке, которое будет выдано системой, например: «Это значение поля недопустимо». В свойстве Обязательное поле можно указать «Да» (пустые значения не допускаются) или «Нет» (пустые значения допускаются).
И последняя рекомендация. Если в первичный ключ вашей таблицы входит одно поле, в свойстве Индексированное поле для него выберите: «Да, совпадения не допускаются», а затем щелкните в панели инструментов на кнопке Определить ключ (с изображением ключа). Тем самым вы определите первичный ключ своей таблицы (и запретите ввод записей с повторяющимся значением первичного ключа).
Итак, следуя вышеприведенным рекомендациям, определим поля таблицы. В графе Имя поля зададим имя «№ личного дела». Для определения типа данных этого поля, щелкнув стрелку в графе Тип данных, раскроем список возможных типов данных и выберем вариант Текстовый. В области окна конструктора Свойства поля выберем вкладку Размер поля и определим максимальное количество знаков для ввода в этом поле - 10 символов.
Обратите внимание, что при выборе различных параметров свойства поля в правой части выводится подсказка о назначении параметра.
Действуя аналогично, введем следующие данные о других полях таблицы (табл. 1).
Таблица 1
Данные о других полях таблицы
Имя поля |
Тип данных |
Свойства (формат поля) |
Фамилия |
Текстовый |
20 символов |
Имя |
Текстовый |
20 символов |
Отчество |
Текстовый |
20 символов |
Дата рождения |
Дата/время |
Длинный формат даты |
Домашний адрес |
Текстовый |
50 символов |
Класс |
Текстовый |
3 символа |
Завершив ввод описания полей таблицы, сохраним таблицу. До того, как сохранить таблицу, определим первичный ключ. Для этого, указав поле № личного дела, щелкнем кнопку Ключевое поле в панели инструментов Стандартная, как показано на рис. 6.
Рис. 6. Определение первичного ключа таблицы
Переключим отображение созданной таблицы в Режим таблицы. При этом обязательно сохраним таблицу под именем Учащиеся. Для переключения отображения таблицы выберем команду Режим таблицы в меню Вид.
Поле первичного ключа определять не обязательно, но желательно. Если первичный ключ не был определен, Microsoft Access при сохранении таблицы спросит, нужно ли создать ключевое поле.
6. Операции с данными в таблице
Ввод данных. Выбрав в окне таблицу Учащиеся, щелкнем кнопку Открыть. Установим курсор в поле № личного дела и введем значение П-69. По окончании ввода значения поля нажмем клавишу Tab для перехода к следующему полю. В остальные поля этой записи введем данные: Петров; Иван; Васильевич; 12.03.89; ул. Горького, 12-34; 4А После окончания ввода значений всех полей записи нажмем клавишу Tab для перехода к следующей записи. Введем еще 4 записи. Заполненная таблица будет выглядеть, как показано на рис. 7.
Рис. 7. Заполненная таблица
Закончив создание таблицы, мы открыли ее и заполнили данными. Если вам не нравится ширина столбца таблицы (например, она слишком велика или наоборот мала и скрывает часть данных), ее можно уменьшить или увеличить - точно так же, как вы изменяли ширину столбца в Excel.
Перемещение по таблице. В строке состояния указывается общее число записей в таблице и номер текущей записи. Текущая запись отмечается стрелкой в левой части окна (в области маркировки записей). Для перемещения по таблице служат кнопки переходов в строке состояния (слева направо: переход к первой записи таблицы, к предыдущей записи, к следующей записи и к последней записи таблицы).
Чтобы переместить текстовый курсор в произвольную ячейку таблицы, можно просто щелкнуть на ячейке мышью.
Кроме того, по таблице можно перемещаться с помощью клавиш Tab, Shift + Tab, стрелок курсора.
Редактирование таблицы. При вводе данных используется основной стандарт редактирования. Закончив ввод или модификацию данных в конкретном поле, нажмите Tab или Enter (или щелкните мышью в другой ячейке таблицы).
Рис. 8. Выбор типа объекта для внедрения в поле таблицы
Для ввода (внедрения) объекта OLE надо щелкнуть правой кнопкой мыши на его поле в таблице и выбрать OLE-сервер из списка, как показано на рис. 8.
После внедрения OLE-объекта, отображаемым в таблице значением его поля будет название соответствующего OLE-сервера (например, Точечный рисунок BMP). Чтобы просмотреть или отредактировать объект (или, скажем, чтобы воспроизвести звукозапись) надо, как всегда, дважды щелкнуть на этом названии.
Операции с записями и столбцами. С помощью команд меню и кнопок панели инструментов вы можете проводить множество стандартных операций с записями и столбцами: вырезать и копировать в буфер, удалять записи, скрывать столбцы и т.д.
Изменим структуру таблицы, вставив перед столбцом Дата рождения столбец с полем Пол. Для этого, выделив столбец Дата рождения, в меню Вставка выберем команду Столбец.
Переименуем вставленный столбец, выделив столбец Поле1 и выбрав в меню Формат команду Переименовать столбец. После этого зададим столбцу имя Пол.
Для определения свойств нового поля переключим таблицу в режим Конструктора, выбрав команду Конструктор в меню Вид. Определим для поля Пол логический тип данных, а на вкладке Общие в области описания Свойства поля выберем формат Да/Нет и отредактируем его, записав как Муж/Жен.
Переключим отображение таблицы в Режим таблицы и в поле Пол заставим флажки в записях с мальчиками.
Переместим столбец Пол, установив его справа от поля Дата рожде-ния. Для этого выделим столбец Пол, щелкнув область выделения поля :о словом Пол, затем отпустим кнопку мыши. Снова нажмем кнопку мыши и, удерживая кнопку мыши в области выделения поля, перетащим столбец Пол в нужное положение.
Отсортируем записи в таблице по алфавиту фамилий, для чего, щелкнув поле Фамилия, нажмем кнопку Сортировка по возрастанию в панели инструментов Access или воспользуемся командой Сортировка в меню Записи.
Отсортированная таблица измененной структуры будет выглядеть, как показано на рис. 9.
Рис. 9. Отсортированная по алфавиту фамилий таблица Учащиеся измененной структуры
Использование фильтра для отбора данных в таблице. Работая с таблицей в оперативном режиме, можно установить фильтр, т.е. задать логическое выражение, которое позволит выдавать на экран только записи для которых это выражение принимает значение True («Истина»).
Выделив в поле Имя значение Павел, нажмем кнопку Применение фильтра на панели инструментов Стандартная или выберем в меню Записи команду Фильтр, затем - Фильтр по выделенному. После этого таблица будет выглядеть, как показано на рис. 10.
Рис. 10. Вид записей таблицы Учащиеся
с фильтром Имя=«Павел»
Чтобы снять фильтр и увидеть все записи в таблице, щелкнем кнопку Удалить фильтр в панели инструментов Стандартная.
Для отбора записей, удовлетворяющих более сложным условиям отбора, используется расширенный фильтр. Например, создадим фильтр, который отбирает из всех записей таблицы только те, которые удовлетворяют условиям: учащиеся, по отчеству «Семенович», родившиеся после 1-го января 1989 г.
Для этого выберем в меню Записи команду Фильтр и подкоманду Расширенный фильтр. После этого в верхней области окна Access откроется список полей таблицы Учащиеся, а в нижней области окна будет раскрыт бланк записи фильтра (рис. 11).
Рис. 11. Создание расширенного фильтра
Добавим в бланк поле Отчество, затем в ячейке Условие отбора для этого поля запишем значение «Семенович». Чтобы указать порядок расположения отфильтрованных записей таблицы, выберем ячейку Сортировка, щелкнем стрелку и выберем порядок сортировки по возрастанию. В строке поля зададим еще одно поле Дата рождения и в ячейке Условие отбора для этого поля введем условие отбора в виде логического выражения >#01.01.89#.
Для применения созданного расширенного фильтра щелкнем кнопку Применение фильтра на панели инструментов Стандартная и посмотрим результат действия расширенного фильтра. Как видно на рис. 12, в таблице отображается только одна запись, удовлетворяющая заданным в фильтре условиям.
Рис. 12. Результат применения расширенного фильтра
Фильтры сохраняются автоматически при сохранении таблицы или формы. Таким образом, при повторном открытии таблицы или формы можно будет снова применить сохраненный фильтр.
7. Создание и использование формы
Итак, нами рассмотрен универсальный способ представления в окне всех полей конкретной таблицы. Основные недостатки этого способа включаются в следующем.
1. Если полей слишком много, они не умещаются на экране и приходится прибегать к различным манипуляциям, чтобы отрегулировать оптимизировать») представление: убирать некоторые столбцы, изменять ширину столбцов, перемещаться по таблице с помощью полосы прокрутки.
2. Если в таблице имеются какие-то коды, таблица теряет информативность: приходится иметь под рукой классификатор, чтобы понять, какому экземпляру объекта соответствует тот или иной код.
Чтобы упростить просмотр, ввод и модификацию данных в конкретной таблице, можно создать для нее одну или несколько форм. Форма - это документ, в окне которого отображается, как правило, одна запись таблицы, причем пользователь имеет возможность по своему усмотрению разместить поля на форме. Таблица и форма - основные объекты в современных информационных системах. Они неотделимы друг от друга и размещены в одном окне документа MS Access на разных вкладках.
Формы используются для следующих целей:
ввода/редактирования данных, помещенных в таблицу;
организации диалога выбора, предварительного просмотра и печа-ти нужного отчета;
• открытия других форм и отчетов с помощью кнопок данной формы.По структуре форма похожа на окно диалога. Связь между формой и
источником данных для нее создается при помощи графических объектов, называемых элементами управления. Наиболее часто используемым для вывода и ввода данных элементом управления является поле. В зависимости от природы поля вы можете сохранить для него обычное представление (поле ввода, как в таблице), или исключить поле, или описать группой кнопок-переключателей (если поле имеет несколько допустимых значений), или флажком (для логических данных), или Тюлем ввода со списком и т.п.
В форме имеются следующие разделы.
Как и любой объект, MS Access может создать форму вручную или воспользоваться услугами Мастера форм. Форма создается для конкретной таблицы или конкретного запроса. Подробные сведения о создании и использовании форм можно получить, выбрав в справке Access тему Работа с формами. Для создания формы необходимо в окне базы данных щелкнуть значок Формы в списке Объекты. Нажать кнопку Создать на панели инструментов окна базы данных. В диалоговом окне Новая форма выбрать строку Конструктор и выбрать имя таблицы, на которой нужно основать форму, например Учащиеся. Если форма не будет содержать данные (например, если нужно создать кнопочную форму для открытия других форм или отчетов), не выбирайте ничего из этого списка. Нажмите кнопку ОК (рис. 13).
Рис. 13. Выбор режима создания новой формы
Чтобы создаваемая форма использовала значения из нескольких таблиц, она должна быть основана на запросе.
Как показано на рис. 14, форма будет открыта в режиме Конструктора. Для размещения поля таблицы в форме следует взять его мышью в таблице и оттащить в область данных.
Рис. 14. Создание формы в режиме Конструктора
При выборе любого из компонентов в формах и отчетах Microsoft Access отображает маркеры перемещения для поля и подписи, а также маркеры изменения размеров для выбранного компонента. Подпись находится слева от поля и перемещается вместе с ним. Для выделения отдельно подписи или поля нужно взять объект мышью за левый верхний маркер и оттащить, как показано на рис. 15.
Рис. 15. Маркеры Рис. 16. Окно изменения
перемещений свойств объекта формы
Для одновременного перемещения нескольких объектов выделите элементы управления, удерживая прижатой клавишу Shift.
Наведите указатель на границу любого выделенного элемента управления и, когда указатель примет форму руки, переместите элементы управления в нужную позицию.
Для изменения форматирования элемента формы можно использовать кнопку Автоформат на панели инструментов, кнопки на панели инструментов Форматирование или команды контекстного меню.
Для изменения свойств поля, выбрав объект формы, щелкнем правой кнопкой мыши и в контекстном меню выберем команду Свойства. Выбирая вкладки, можно изменить свойства объекта, например, цвет, отображаемые в поле формы данные, связать с этим объектом определений события и т.п. (рис. 16).
Зададим маску ввода даты, для чего, указав поле Дата рождения. нужно вызвать контекстное меню и в нем выбрать команду Свойства. BJ окне Поле: Дата рождения на вкладке Данные щелкнем строку Маска] ввода для вызова диалогового окна. В окне Создание масок ввода берем вариант Краткий формат даты, в поле Проба зададим вариант да даты для проверки избранной маски ввода. Щелкнув кнопку Далее отредактируем маску ввода. Для применения созданной маски в щелкнем кнопку Готово (рис. 17).
Создадим заголовок формы, для чего выберем в меню Вид команду Заголовок/примечание формы. После этого, выбрав в панели инструментов Конструктора инструмент Надпись, выберем место в зоне заголовка формы, зададим размер надписи и введем ее в текст «Учащиеся».
Завершим создание формы, выбрав команду Режим формы в меню Вид. После сохранения макета формы данные таблицы будут представлены, как показано на рис. 18.
Используя поле номера записи, можно просматривать записи таблицы. Щелкнув кнопку Новая запись, откроем форму для создания новой записи и введем следующие данные о новом учащемся: Л-23; Лынова Екатерина Михайловна; 03.08.88; 4В; ул. Смоленская, 17-35. Выбрав команду Режим таблицы в меню Вид, просмотрим изменения данных в таблице Учащиеся.
Рис. 17. Определение маски ввода в поле Дата рождения
Для добавления в форму фонового рисунка откроем форму в режиме конструктора. Дважды щелкнув область выделения формы, откроем окно свойств формы. На вкладке Макет в ячейке свойства Рисунок щелкнем кнопку (...) для вызова диалогового окна. В диалоговом окне Выбор рисунка откроем нужную папку и файл. Щелкнув ОК, завершим выбор рисунка, например, Праздник воздушных шаров .JPG. В свойстве Тип рисунка выберем тип рисунка - внедренный или связанный. Внедренный рисунок сохраняется в файле базы данных.
Если внедрить этот же рисунок в другую форму, он будет добавлен в файл базы данных еще раз. Связанный рисунок не сохраняется в базе данных - его файл должен присутствовать на жестком диске. Для экономии места на диске выберем тип рисунка - связанный.
Рис. 18. Окно Access с формой Форма1 и фоновым рисунком
Поместив рисунок в форму, можно изменить его размер или выбрать фрагмент. Для этого необходимо указать в ячейке свойства Масштабы рисунка значение Фрагмент. Для выравнивания рисунка выберем одно из значений в ячейке свойства Выравнивание рисунка вариант Сверху слева. Для того чтобы размножить рисунок по всему фону формы, установим в ячейке свойства Мозаичное заполнение значение Да. Заполнение начинается с позиции, определяемой значением свойства Выравнивание рисунка. В результате этой операции форма будет иметь вид, показанный на рис. 18.
8. Создание и использование запроса
В общем случае запрос - это вопрос о данных. Существуют разные типы запросов (на выборку, запрос с параметрами, перекрестные запросов, запрос на изменение таблицы, запросы SQL).
Запрос-выборка в MS Access. Простейший из запросов - запрос-выборка - это производная таблица, которая содержит те же структурные элементы, что и обычная таблица (столбцы-поля и строки), и формирует на основе фактических данных базы данных. Запрос на выборку отбираем данные из одной или более таблиц по заданным условиям, а затем отражает их в нужном порядке. Запрос можно создать с помощью мастера или самостоятельно в режиме конструктора, выбрав таблицы или запросы, содержащие нужные данные, и заполнив бланк запроса.
При создании макета запроса (т.е. производной таблицы) в общем е нам необходимо выполнить следующие базовые операции: указать системе, какие поля и из каких таблиц мы хотим включить в запрос и описать вычисляемые поля, т.е. поля, значения которых являются днями значений существующих полей (например, средняя успеваемость это среднее арифметическое значение всех оценок); описать групповые операции над записями исходных таблиц (например, нужно ли объединить группу записей и указать условие отбора (мальчики из 5Б класса) в одну и просуммировать значение их роста для расчета среднего значения роста учащихся класса).
При разработке конкретного запроса допускается любое сочетание разовых операций.
Создание запроса-выборки. В общем случае для создания произвольного запроса используется универсальный язык SQL. В предложении этого с<а (Select - Выбрать) можно описать все базовые операции: какие и откуда выбрать, какие вычислить, как их сгруппировать (просуммировать, пересчитать, найти среднее и т.п.) и при каких условиях включить записи в выборку. Однако в реальности пользоваться этим языком т только специалисты (или очень грамотные пользователи).
Для обычных людей разработчики придумали упрощенный механизм создания запроса, называемый QBE (Query By Example - запрос по образцу) Вам предлагают бланк QBE - некую модель, заготовку запроса и на этом бланке, пользуясь определенными правилами, вы сообщаете системе о своих планах: помечаете поля, вводите выражения, значения и т.п. На основании заполненного вами бланка система сама создаст соответствующее предложение Select и сама выполняет его. Усмотрим создание простого запроса на выборку с помощью Мастер простого запроса на выборку создает запросы для получения данных из полей, выбранных в одной или нескольких таблицах или запросах. С помощью мастера можно также вычислять суммы, количества и средние значения для всех записей или определенных групп записей, а также находить максимальное и минимальное значение в поле. Однако нельзя ограничить количество записей, возвращаемых этим запросом, с помощью условий отбора.
Рис. 19. Выбор таблицы и полей при создании запроса-выборки
Для создания запроса выберите в окне базы данных Группа значок Запросы в списке Объекты и нажмите кнопку Создать на панели инструментов. В диалоговом окне Новый запрос выберите мастера Простой запрос и нажмите кнопку ОК.
Укажите имя таблицы Учащиеся, на которой будет основан создаваемый запрос, а затем выберите поля, данные которых нужно использовать, как показано на рис. 19.
Если необходимо, укажите дополнительную таблицу или зам рос и выберите нужные поля. Повторяйте этот шаг до тех пор, пока ж выбраны все необходимые поля.
Следуя инструкциям Мастера, выберем вариант подробный отчет I щелкнем кнопку Далее. В последнем диалоговом окне зададим имя запроса Запрос1 и запустим полученный запрос, выбрав вариант Открыть запрос для просмотра данных и щелкнув кнопку Готово. Результат действия запроса показан на рис. 20.
Выбрав команду Режим SQL в меню Вид, мы можем увидеть текст созданного запроса на языке SQL:
SELECT [Учащиеся].[Фамилия], [Учащиеся].[Имя], [Учащиеся].[Отчество], [Учащиеся.Школ].[Учащиеся].[Дата рождения], [Учащиеся].Домашний адрес], [Учащиеся].[Класс]
FROM Учащиеся;
Как видно из текста, в запросе на языке SQL записана команда выбора из таблицы Учащиеся и описан порядок размещения полей таблицы в таблице-результате действия запроса.
Рис. 20. Просмотр данных в запросе Запрос1
Для получения подробной справки о создании запроса вызовите справочную систему Access и на вкладке Мастер ответов задайте текст вопроса «Создание запроса». Затем в списке найденных разделов выберите раздел Создание запроса и изучите справочную информацию в правой части окна справки.
Если получился не тот запрос, который был нужен, можно снова загустить мастера или изменить этот запрос в режиме конструктора. Откроем созданный запрос в режиме Конструктор. На рис. 21 показан вид окна Access с запросом в режиме Конструктора. В верхней части го окна показана схема данных выбранных таблиц с указанием связей и имен всех полей, в данном случае таблица Учащиеся. В нижней части окна размещается бланк QBE, который представляет собой макет некоей таблицы. Столбцы этой таблицы соответствуют полям создаваемого запроса, а число строк переменно и зависит от состояния флажков Имена таблиц» и «Групповые операции» (на панели инструментов или в пункте Вид). В строке Поле: указываются имена столбцов (полей) создаваемого запроса. Существующее имя можно выбрать из раскрывающегося списка (щелкнув мышью на поле) или просто перенести в ячейку Поле: методом «Drag-and-Drop» из таблицы Учащиеся в верхней части окна запроса. В первом столбце мы разместили поле Фамилия, во втором - Имя и т.д. В ячейке Имя таблицы: (она появляется в бланке, если установлен флажок «Имена таблиц») отображается имя таблицы, которая содержит выбранное поле (таблица Учащиеся).
Если бы в строке Поле: размещалось вычисляемое поле, тогда в ячейке этой строки нужно было бы ввести формулу: <Имя поля>:<Выражение>
Например: Стоимость: [Количество]* [Цена]
В строке Сортировка: можно указать порядок вывода на экран записей (по возрастанию, по убыванию).
В поле Вывод на экран: находятся флажки, установив или сбросив флажок, мы разрешим или запретим вывод данного столбца на экран.
Рис. 21. Изменение запроса в режиме Конструктор
Если бы мы собирались проводить в запросе групповые операции объединять записи в группы), нужно было бы включить флажок «Групповые новые операции» - появляется строка Групповая операция: После : щелчка на любом поле этой строки появится список типов групповых операций: Группировка, Sum, Avg, Count, Выражение и др.
Например, если в качестве типа групповой операции в столбце указать Count (Сосчитать), то получим количество записей, соответствующих запросу в этой группе.
В строках Условие отбора, И, Или можно указать условные или логические выражения, которые позволят нам отобрать для запроса только записи, удовлетворяющие заданному условию. Обратите внимание на следующие соглашения, предусмотренные в Access.
Изменим запрос, добавив условие отбора только тех учащихся, которые не имеют мужской пол. Для этого установим курсор в столбце Пол на строке Условие отбора и, щелкнув правую кнопку мыши, вызовем контекстное меню, а в меню выберем команду Построить. В списке папок построителя выражений, щелкнув папку Запрос 1. раскроем список полей. Дважды щелкнув поле Пол, включим это поле в область выражений. Щелкнув оператор «=», включим его в выражение (рис. 22).
Рис. 22. Вызов Построителя выражений
Выбрав папку Константы, в списке констант дважды щелкнем на значении «Ложь». Щелкнув ОК, завершим построение логического выражения, рис. 23.
Рис. 23. Создание логического выражения
в окне Построителя выражений
Выбрав в меню Вид команду Режим SQL, мы можем просмотреть запись созданного запроса на языке SQL:
SELECT Учащиеся.Фамилия, Учащиеся.Имя, Учащиеся.Отчество, Учащиеся.Пол, Учащиеся.[Дата рождения], Учащиеся.[Домашний адрес], Учащиеся.Класс
FROM Учащиеся
WHERE (([Пол] = False));
Как видно из текста, в описание запроса добавлено выражение WHERE (([Пол] = False)), которое отбирает в таблице те записи об учащихся, в которых поле Пол не является мужским. После просмотра записи выберем в меню Вид команду Режим таблицы и просмотрим таблицу-результат запроса (рис. 24).
Рис. 24. Запрос с ограничением отображаемых записей по условию
Создание запроса с параметром. В частном случае, проектируя запрос, вы можете создать из него своеобразную микропрограмму, которая будет работать по-разному, в зависимости от вводимого вами параметра. Запрос с параметрами выводит одно или несколько предопределенных диалоговых окон, в которых запрашивается ввод условий отбора при каждом запуске запроса. В ответ на запрос пользователь должен ввести значения параметров (условия отбора). Откроем созданный ранее запрос на выборку Запрос1 в режиме конструктора и удалим условие отбора [Пол] = Ложь.
Для каждого поля, которое предполагается использовать как параметр, следует ввести в ячейку строки Условие отбора текст приглашения, заключенный в квадратные скобки. Это приглашение будет выводиться при запуске запроса. Текст приглашения должен отличаться от имени поля, но может включать его. Для поля, которое выводит даты, можно ввести приглашения следующего вида «Введите начальную дату:» и «Введите конечную дату:», чтобы задать границы диапазона значений. «Снимем» флажок выдачи столбца Класс на экран, а в поле Условие отбора: (в этом столбце!) наберем текст приглашения: [Какой класс] (квадратные скобки обязательны).
Для просмотра результатов наймем кнопку Вид на панели инструментов. После этого на экран будет выведено окно с приглашением ввести параметр. Введем параметр 4В и щелкнем ОК для выполнения выборки записей из таблицы в соответствии с заданным параметным условием.
После этого таблица-результат будет выглядеть, как показано на рис. 25.
Рис. 25. Результат отбора записей по условию
[Класс]="4В", заданному как параметр
Чтобы вернуться в режим конструктора запроса, снова нажмем кноп-Вид на панели инструментов.
Отменим запрос с параметром и изменим условие отбора данных, чтобы в запросе отображались данные об учащихся, родившихся летом 1988 г. Для этого восстановим флажок выдачи столбца Класс на экран, а в поле Условие отбора: (в этом столбце!) удалим текст приглашения. В ячейке строки Условие отбора поля Дата рождения введем текст условия: [Дата рождения]>#01.06.88# AND [Дата рождения]<#01.09.88#.
Для проверки действия созданного запроса выберем команду Ре таблицы в меню Вид. Таблица-результат запроса выглядит, как покано на рис. 26.
Рис. 26. Вид таблицы-запроса об учащихся, родившихся летом 1988 г.
Применение других типов запросов мы рассмотрим при выполнении лабораторных работ.
9. Создание и использование отчета
Отчет представляет собой эффективный способ представления данных в печатном формате. Имея возможность управлять размером и внешним видом всех элементов отчета, пользователь может отобразить сведения желаемым образом. Как правило, для формирования отчета создают запрос, в котором собирают данные из разных таблиц с включением вычисляемых полей, группировкой, условиями отбора (любая операция необязательна). Далее, по общим правилам MS Access, на базе такого запроса проектируют отчет, который позволяет:
представить данные в удобной для чтения и анализа форме;
сгруппировать записи (по нескольким уровням) с вычислением итоговых и средних значений;
включить в отчет и напечатать графические объекты (например, диаграммы).
Сведения, отображаемые в отчете:
заголовок отчета и столбцов;
данные, определяемые выражением, которое задается в макете отчета:
данные из полей базовой таблицы, запроса или инструкции SQL;
итоговые значения, вычисляемые с помощью выражений, заданныхв макете отчета.
Для создания связи между отчетом и его исходными данными применяются элементы управления: поля, содержащие имена или числа, надписи для заголовков, декоративные линии для графического оформления отчета.
Структура отчета. Структура отчета аналогична структуре формы. Сведения в отчете могут быть разбиты на разделы. Каждый раздел имеет определенное назначение и печатается на странице и в отчете в заданном порядке.
Как в форме, так и в отчете могут присутствовать следующие разделы:
заголовок;
верхний и нижний колонтитулы;
область данных;
примечание отчета.
Заголовок отчета выводится один раз в начале отчета и содержит наиболее общие сведения: название и логотип фирмы, название отчета.
Верхний колонтитул печатается вверху каждой страницы и может содержать подписи столбцов - графы отчета. Нижний колонтитул печатается внизу каждой страницы и может содержать номер страницы, даты создания отчета.
Основной раздел отчета - область данных, в котором размещаются данные отчета из каждой записи базового источника (таблицы, запроса). Если в отчете используются сгруппированные записи, то в основном разделе отчета в каждой группе может использоваться заголовок группы. В нем отображаются сведения, общие для всей группы (название группы).
Примечание отчета выводится один раз в конце отчета и содержит итоговые данные отчета.
Размеры разделов можно изменить в режиме конструктора отчета.
В Access 2000 возможны следующие способы создания отчета: Автоотчет, Мастер отчетов, создание отчета в среде конструктора.
Создание отчета с помощью мастера. В окне базы данных выберем значок Отчеты в списке Объекты. Щелкнем кнопку Создание отчета с помощью мастера. В диалоговом окне Создание отчетов выберем таблицу Учащиеся, на которой должен быть основан отчет. Включим в список Выбранные поля поля из таблицы. Для этого, указав поле в списке Доступные поля, щелкнем кнопку >. Если нужно включить в список Выбранные поля все поля из списка Доступные поля, то нужно щелкнуть кнопку » (рис. 27).
Порядок расположения полей таблицы в списке Выбранные поля определяет порядок расположения столбцов будущего отчета. Используйте кнопки < и > для формирования списка полей в том порядке, как вам нужно.
Рис. 27. Группировка записей в отчете
Завершив формирование списка Выбранные поля, щелкнем кнопку Далее. На следующем шаге диалога с Мастером отчетов определим уровни группировки полей в отчете. Пусть данные в нашем отчете будут сгруппированы.
Рис. 28. Окно Access с отчетом по таблице Учащиеся
Щелкнув кнопку Далее, зададим сортировку записей в группах по фамилиям в алфавитном порядке. На следующем шаге создадим макет отчета, выбрав ступенчатый вариант отчета на странице с книжной ориентацией. Включим опцию Настроить ширину полей для размещения на одной странице. Щелкнув кнопку Готово, завершим создание отчета и посмотрим результат на экране. На рис. 28 показан вид окна Access с созданным отчетом по таблице Учащиеся.
Обратите внимание на группировку записей по классам, а внутри группы 4В класса - упорядоченное расположение записей, отсортированных по фамилиям учащихся в алфавитном порядке.
Параметры просмотра отчета можно изменить, используя кнопки панели инструментов предварительного просмотра (аналогичный режим мы рассматривали ранее при изучении текстового процессора Microsoft Word).
Так, например, кнопка Масштаб переключает изображение между режимами полной страницы и изменяемого масштаба. Когда указатель мыши принимает форму лупы, нажатие кнопки мыши на странице отчета приводит к увеличению отчета до размера полной страницы. Повторное нажатие мыши возвращает прежний масштаб отображения отчета.
Нажатие кнопки Вид выводит список доступных режимов отображения текущего окна. Для выбора режима можно щелкнуть кнопку раскрытия списка и выбрать нужный вариант. В данном случае на кнопке изображен режим Конструктор. Щелкнув по кнопке с изображением режима Конструктор, можно перейти к изменению отчета.
Печать отчета. Перед тем как вывести отчет на печать в первый раз, рекомендуется проверить ориентацию страницы, размеры полей и другие параметры страницы. Выбрав отчет в окне базы данных или открыв отчет в режиме конструктора, режиме предварительного просмотра или режиме просмотра образца, вы можете для вывода отчета на печать без открытия диалогового окна нажать кнопку Печать на панели инструментов.
Если же вы хотите открыть диалоговое окно для того, чтобы задать параметры печати, то, выбрав в меню Файл команду Печать, в диалоговом окне Печать укажите нужные параметры. Затем в группе Принтер выберите принтер, в группе Печатать выберите печать всего отчета или определенного диапазона страниц, в группе Копии укажите число печатающихся копий и, при необходимости, включите печать с раскладкой по копиям. Для начала печати с заданными параметрами нажмите кнопку ОК.
10. Создание Web-страницы доступа к данным
Страницы доступа к данным представляют собой специальный тип Web-страниц, предназначенный для просмотра и работы через Интернет или интрасеть с данными, хранящимися в базах данных Microsoft Access или базах данных Microsoft SQL Server. Страница доступа к данным может также включать данные из других источников, таких как Microsoft Excel.
Для просмотра страницы доступа к данным и работы с ней в Интернете или интрасети пользователям необходим Microsoft Internet Explorer 5, а также лицензия Microsoft Office 2000.
Страницы доступа к данным разрабатываются с помощью мастера или в режиме конструктора страниц. Страница представляет собой отдельный файл, хранящийся за пределами Microsoft Access; однако при создании этого файла Microsoft Access автоматически добавляет ярлык к нему в окно базы данных. Разработка страниц доступа к данным аналогична разработке форм и отчетов: используется список полей, панель элементов, элементы управления, диалоговое окно Сортировка и группировка и т.д. Тем не менее разработка страниц доступа к данным имеет ряд существенных отличий от разработки форм и отчетов. Способ разработки страницы зависит от ее предназначения.
Существует несколько типов страниц доступа к данным.
Страница может содержать диаграммы для анализа тенденций, закономерностей и выполнения сравнений между данными в базе данных или электронные таблицы, в которые можно вводить и редактировать данные, а также использовать формулы для выполнения некоторых вычислений, выполняемых в Microsoft Excel.
Использование страниц доступа к данным в Internet Explorer. Страница доступа к данным непосредственно связана с базой данных. При просмотре в Microsoft Internet Explorer для пользователя отображается копия страницы. Поэтому любой отбор данных, сортировка и другие изменения способа отображения данных, включая изменения в сводном списке или электронной таблице, влияют только на копию страницы. Однако изменения в самих данных - изменение значений, добавление или удаление данных, сохраняются в исходной базе данных, и поэтому доступны всем, кто просматривает страницу.
Использование страниц доступа к данным в Microsoft Access. Co страницами доступа к данным также можно работать в режиме страницы в Microsoft Access.
Страницы доступа к данным могут дополнять формы и отчеты, используемые в приложении базы данных. Страницы доступа к данным предоставляют возможность взаимодействия с большими объемами выбранных данных. Развертывая и свертывая группы записей, пользователь может сфокусироваться только на тех данных, которые ему необходимы.
Составные части страницы доступа к данным. Страница доступа к данным может состоять из большого числа различных компонентов, набор которых варьируется в зависимости от цели создания страницы.
Некоторые из наиболее часто используемых компонентов страницы доступа к данным.
Текстовые поля или поля ввода. Отображают существующие данные из базы данных или, если разрешено, принимают вводимые пользователем новые данные для хранения в базе данных.
Записи. Наборы связанных фактов об одном хранящемся в базе данных элементе. Например, все данные об учащемся Петрове Иване представляют собой одну запись.
Группы. Объединяют данные в наборы. Например, записи учащихся могут быть сгруппированы по классам. Название каждого класса - заголовок группы.
Панель перехода по записям. Позволяет быстро выполнять переходы между записями либо добавлять, удалять, сохранять, отменять изменения, сортировать или фильтровать записи.
На странице доступа с группами каждая группа может иметь собственную панель перехода по записям, расположенную в нижней части развернутой группы. Если панель на странице не включает некоторые из кнопок, показанных на следующем рисунке, или включает кнопки, не перечисленные здесь, значит, она была специально настроена разработчиком страницы.
Сводные списки. Аналог сводных таблиц Microsoft Excel; отображают данные в виде строк и столбцов, которые можно реорганизовывать для анализа данных различными способами. Это делается путем перемещения строк в столбцы и столбцов в строки, отображения итоговых сумм на пересечении строки столбцов, а также с использованием других способов упорядочения и суммирования данных. Сводный список содержит собственную панель инструментов и встроенную справку.
Электронные таблицы. Аналог листа Microsoft Excel; позволяют вводить и редактировать данные или выполнять вычисления с данными. Электронная таблица содержит собственную панель инструментов и встроенную справку.
Диаграммы. Используют базу данных для визуального отображения тенденций, закономерностей и сравнений. При изменении базы данных происходит соответствующее изменение диаграммы. Если диаграмма связана со сводным списком или электронной таблицей на странице доступа к данным, то диаграмма изменяется при изменении связанного сводного списка или электронной таблицы.
Web-страницу можно создать следующими способами:
с помощью Автостраницы;
с помощью мастера;
преобразования существующей Web-страницы в страницу доступак данным;
создания страницы в режиме конструктора страниц MS Access.
Создание Web-страницы доступа к данным с помощью мастера. Щелкнув ярлык Страницы, выбрать вариант Создание страницы доступа к данным с помощью мастера.
На первом шаге диалога с мастером выбрать базовую таблицу Учащиеся, выбирая в списке Доступные поля поля таблицы данных и щелкая кнопку >, включая их в список Выбранные поля, определим состав полей таблицы данных, отображаемых на странице доступа к данным.
Щелкнув кнопку Далее, перейдем к этапу определения уровней группировки. С учетом того, что добавление уровней группировки приводит к тому, что страница будет доступна только для чтения, не добавляем уровней группировки и щелкнем кнопку Далее. Затем определим порядок сортировки по фамилиям в алфавитном порядке. Щелкнув кнопку Далее, зададим название страницы Учащиеся и включим флажок Применить тему к странице. Выбрав опцию Открыть страницу, щелкнем кнопку Готово. После этого выполняется инициализация страницы доступа к данным и через некоторое время на экране раскрывается окно Темы. Выбирая в списке Выберите тему вариант оформления страницы, просматриваем в правой области окна образец оформления. Щелкнув ОК. завершаем выбор темы оформления.
Для просмотра страницы выбираем в меню Вид команду Просмотр страницы. Если выбрана тема Смесь, то окно Access со страницей доступа к данным выглядит, как показано на рис. 29.
Рис. 29. Окно Access со страницей доступа к данным
Сохраним созданную страницу на диске для последующего использования. Для этого в меню Файл выберем команду Сохранить как, а затем в диалоговом окне укажем папку и имя файла, например Orpammal.htm
Выбрав в меню Файл команду Открыть. Щелкнув кнопку Обзор, в окне Открыть выберем папку и файл страницы доступа и щелкнем кнопку Открыть. Проверим запись адреса страницы в поле Открыть и, щелкнув кнопку ОК, откроем указанную страницу в Интернет-броузере (рис. 30).
Рис. 30. Ввод адреса страницы доступа к данным
После этого указанная страница будет загружена в окно Microsoft Internet Explorer 5, как показано на рис. 31.
Для просмотра записей воспользуемся кнопками перехода по записям в нижней части окна. Как видно на рис. 31, в строке перехода по записям присутствуют еще несколько инструментов: добавить, удалить запись, сохранить, отсортировать, задать, снять фильтр и т.п.
Для изменения существующей страницы в MS Access щелкнем ярлык Страница, а затем выберем команду Изменение существующей Web-страницы.
В окне конструктора страницы, выбрав на панели инструментов инструмент поле, укажем позицию и зададим размер нового поля.
Рис. 31. Страница доступа к данным в окне Internet Explorer
Указав поле, выберем в меню Вид команду Свойства. В окне определения свойств объекта определим исходные данные для отображения в этом поле и другие свойства поля. Действуя таким образом, зададим на странице поле, в котором будет отображаться № личного дела. Закроем окно описания свойств нового поля и, выбрав в меню Вид команду Просмотр страницы перейдем к просмотру страницы.
Рис. 32. Измененная страница доступа к данным
Введем значение новой записи и сохраним изменения, щелкнув соответствующую кнопку; в строке перехода по записям. Для сортировки записей щелкнем кнопку направления сортировки. Для задания фильтра поставим курсор в пол( со значением фильтра (например, в поле Класс со значением 5Б) и щелк нем кнопку Фильтр по выделенному. После этого записи на странице отфильтруются, а в строке перехода по записям будет выведено сообщение: Учащиеся 1 из 2 (всего отфильтровано 2 записи). Просмотрев записи, снимите фильтр, щелкнув кнопку Удалить фильтр.
Просмотрим измененную страницу доступа к данным в окне Microsof Internet Explorer 5, для чего запустим Internet Explorer, выберем автономный режим работы и загрузим страницу (рис. 32).
Выбрав в меню Вид Internet Explorer команду в виде HTML, мы можем просмотреть кодировку Web-страницы на языке гипертекстовой раз метки. Вид Web-страницы доступа к данным на языке HTML показан на рис. 33.
а
Рис. 33. Вид Web-страницы доступа к данным на языке HTML
Оптимизация страниц доступа к данным. Существуют следующие способы повышения скорости загрузки страниц доступа к данным в режиме страницы MS Access или в Microsoft Internet Explorer 5:Стр
Не создавайте перекрывающиеся элементы управления.
Не создавайте лишние рисунки и другие графические объекты. Старайтесь использовать черно-белые рисунки вместо цветных.
Убедитесь, что в окне Сортировка и группировка свойство Развернуто по умолчанию (ExpandedByDefault) для самого верхнего уровня группировки имеет значение Нет. Установка значения Нет для этого свойства нижних уровней группировки повысит скорость других взаимодействий после открытия страницы.
Установите для свойства Размер страницы доступа (DataPageSize) в окне Сортировка и группировка, определяющего число записей, отображаемых в группе на странице, низкое, а не высокое значение или значение Все. Чем ниже значение этого свойства, тем быстрее отображаются записи.
Для отображения данных, которые не обновляются (например, значений счетчика, гиперссылок и значений, извлекаемых из выражений), используйте присоединенные элементы управления HTML, а не поля.
На страницах с группировкой используйте для отображения данных присоединенные элементы управления HTML, а не поля.
При использовании страниц доступа к данным в Microsoft Access закрывайте все неиспользуемые объекты базы данных.
При использовании страниц доступа к данным в Internet Explorer закрывайте все окна, которые не используются.
На страницах доступа к данным, используемых для ввода данных, установите для свойства страницы DataEntry значение Истина, чтобы страница открывалась с пустой записью.
Индексируйте все поля, по которым проводится сортировка, группировка или отбор.
На страницах доступа к данным с группировкой, содержащих записи с отношением «один-ко-многим», группируйте записи по таблице, а не по полю или выражению.
На страницах доступа к данным с группировкой, основанных на таблицах с отношением «один-ко-многим», присоединяйте каждый раздел к таблице, а не к запросу. Microsoft Access загружает записи из таблицы только по мере необходимости их отображения на странице. При использовании запроса Access загружает все записи до отображения записей на странице. Используйте запрос только при необходимости ограничения использования данных на странице, вычисления статистических значений или выполнения задач, возможных только в запросе.
11. Выполнение обработки данных с помощью макрокоманд
Изучая текстовый процессор Word и табличный процессор Excel, мы уже знакомились с автоматизацией операций в Microsoft Office. О Microsoft Access для целей автоматизации операций с объектами баз данных использует два типа средств: макросы и модули.
Макросом называют набор из одной или более макрокоманд, выполняющих определенные операции, такие как открытие форм или печать отчетов. Например, при нажатии пользователем определенной кнопки можно запустить макрос, который распечатает отчет.
Макрос может быть как собственно макросом, состоящим из последовательности макрокоманд, так и группой макросов. В некоторых случаях для решения, должна ли в запущенном макросе выполняться определенная макрокоманда, может применяться условное выражение.
Модулем называют набор описаний и процедур на языке Visual Basic для приложений, собранных в одну программную единицу.
В Microsoft Access многие действия выполняются с помощью макросов или через интерфейс пользователя. Во многих других СУБД для решения тех же самых задач требуется программирование. Выбор между созданием макроса или разработкой программы Visual Basic для приложений обычно определяется требуемыми действиями.
В каких случаях целесообразнее использовать макрос?
Макрос является удобным средством выполнения простых задач, таких как:
открытие и закрытие форм;
вывод на экран и скрытие панелей инструментов или запуск отчетов;
связывание различных объектов базы данных;
определение общих назначенных клавиш;
выполнение макрокоманды или набора макрокоманд при открытиибазы данных.
Программы на Visual Basic используют вместо макросов в следующих случаях.
Упрощение управления базой данных. Поскольку макросы являютсяобъектами, существующими отдельно от использующих их форм и отчетов, поддержание базы данных, в которой реакция на события в формах и отчетах определяется многими макросами, становится достаточно затруднительным. В отличие от этого процедуры обработки события Visual Basic являются встроенными в описания соответствующих форм и отчетов. При переносе формы или отчета из одной базы данных в другую встроенные процедуры обработки события автоматически переносятся вместе с формой или отчетом.
Создание пользовательских функций. В Access определен ряд встроенных функций, например функция IPmt, которая рассчитывает проценты по платежам. Встроенные функции можно использовать для выполнения вычислений без необходимости разрабатывать сложные выражения.Язык Visual Basic позволяет пользователям создавать также собственные функции как для решения задач, выходящих за рамки возможных для встроенных функций, так и для замены сложных выражений, содержащих встроенные функции. Кроме того, создаваемые пользователем функции используются в выражениях для выполнения общих операций над несколькими объектами.
Скрытие сообщений об ошибках. Стандартные сообщения об ошибках Microsoft Access, выводимые на экран при возникновении нештатных ситуаций во время работы с базой данных, могут оказаться малопонятными для пользователя, особенно если этот пользователь плохо знаком с Access. С помощью Visual Basic можно перехватывать ошибку при ее возникновении и либо выводить собственное сообщение об ошибке, либо предпринимать определенные действия.
Создание или обработка объектов. В большинстве случаев удобнеесоздавать или изменять объекты в режиме конструктора. Однако в некоторых ситуациях приходится работать с описанием объекта в программе. Средства Visual Basic позволяют выполнять обработку всех объектов в базе данных, а также самой базы данных.
Выполнение действий на уровне системы. Выполнение в макросе макрокоманды «ЗапускПриложения» (RunApp) позволяет запускать из собственного приложения другое приложение, работающее в среде Microsoft Windows или MS-DOS, однако этим возможности использования макроса вне Microsoft Access практически исчерпываются. Средства Visual Basic позволяют проверять существование файлов, использовать программирование объектов или динамический обмен данными (DDE) для связис другими приложениями для Windows, например Microsoft Excel, а так же вызывать функции из библиотек динамической компоновки (DLL) Windows.
Обработка записей по одной. Инструкции Visual Basic позволяютперебирать наборы записей по одной и выполнять определенные действия над отдельной записью. В отличие от этого макросы позволяют работать только с целым набором записей.
Передача аргументов в процедуры Visual Basic. Аргументы для макрокоманд можно задавать в нижней части окна макроса при его создании, но при выполнении макроса изменять их невозможно. Однако при помощи Visual Basic можно передавать аргументы в выполняемую программу или использовать в качестве значений аргументов переменные; макросы не позволяют делать это. Передача аргументов повышает гибкость выполнения процедур Visual Basic.
Использование модулей требует достаточно серьезной программистской подготовки, сначала мы рассмотрим использование макросов как средств автоматизации в MS Access, используемых пользователями, не владеющими основами программирования на Visual Basic.
Макросы в Microsoft Access 2000 являются достаточно эффективным средством автоматизации, так как в этой версии СУБД представлены новые макрокоманды, с помощью которых можно открывать страницы доступа к данным и новые объекты базы данных, диаграммы, сохраненные процедуры и представления в проекте Microsoft Access (.adp).
12. Создание макроса
Создадим макрос, который открывает таблицу Учащиеся, выделяет эту таблицу, открывает для нее форму Форма, затем применяет к ней фильтр, позволяющий просмотреть записи об учащихся женского пола.
Рис. 34. Создание макроса
3. Введем текст комментария к макрокоманде (необязательно). Комментарии облегчают понимание и сопровождение макросов.
4. Для добавления в макрос других макрокоманд перейдем на следующую строку и повторим шаги 2 и 3.
Чтобы быстро создать макрос, выполняющий действие над конкретным объектом базы данных, перетащите этот объект из окна базы данных в строку макрокоманды окна макроса. Например, можно создать макрос, открывающий форму, путем перетаскивания формы в строку макрокоманды. Для этого выберите в меню Окно команду Слева направо, чтобы расположить окно макроса и окно базы данных на экране рядом, граница к границе; в окне базы данных выберите нужный тип объекта в списке Объекты, щелкните объект и перетащите его в строку макрокоманды. Перетаскивание макроса или сохраненной процедуры добавляет макрокоманду для запуска макроса или процедуры, а перетаскивание объектов базы данных других типов добавляет макрокоманду для открытия объекта.
Использование условий в макросах. В некоторых случаях требуется выполнять макрокоманду или серию макрокоманд только при выполнении некоторых условий. Например, если в макросе проверяется соответствие данных в форме условиям на значение, то для одних значений может потребоваться вывести одно сообщение, а для других значений другое сообщение. В подобных случаях условия позволяют определить порядок передачи управления между макрокомандами в макросе.
Условие задается логическим выражением. В зависимости от значения логического выражения управление может передаваться разным макрокомандам.
Условное выражение вводится в ячейку столбца Условие в окне макроса. Если условие истинно, выполняется макрокоманда, содержащаяся в данной строке. Для того чтобы выполнить набор макрокоманд при истинности условия, следует ввести начиная со следующей строки многоточие (...) в ячейки столбца Условие идущих подряд макрокоманд, принадлежащих к этому набору.
Рис. 35. Сохранение макроса
Например, в макрокоманде Применить фильтр в качестве аргумента зададим условие отбора записей таблицы:
[Учащиеся]![Пол]<>Истина. Сохраним макрос, выбрав в меню Файл команду Сохранить как. В окне Сохранение задать имя макросу Макрос1 и указать тип файла макрос, как показано на рис. 35.
В результате получим макрос, показанный на рис. 36 и состоящий их четырех макрокоманд.
Запуск макроса. При запуске макроса выполнение макрокоманд начинается с первой строки макроса и продолжается до конца макроса или, если макрос входит в группу макросов, до начала следуют макроса.
Рис. 36. Макрос, выполняющий отбор записей
и вывод их в форме
Рис. 37. Результат выполнения макроса Макрос1
Выполнение макроса может начинаться по команде пользователя, при вызове из другого макроса или процедуры обработки события, а также в ответ на событие в форме, отчете или элементе управления. Например, можно связать макрос с кнопкой в форме или отчете, в результате чего макрос будет запускаться при нажатии кнопки. Допускается также создание специальной команды меню или кнопки панели инструментов, запускающей макрос, определение сочетания клавиш, нажатие которых запускает макрос, а также автоматический запуск макроса при открытии базы данных.
Запустим созданный макрос Макрос 1.
Макрос выполнится, и в окне Access будет раскрыта форма Форма1 с отфильтрованными записями (рис. 37).
Назначение клавиши для выполнения макрокоманды или набора макрокоманд. Допускается связывание макрокоманды или набора макрокоманд с конкретной клавишей или сочетанием клавиш с помощью специальной группы макросов AutoKeys. После этого при нажатии клавиши или сочетания клавиш Microsoft Access будет выполнять данную макрокоманду.
Допустимые сочетания клавиш являются подмножеством синтаксиса инструкции Visual Basic SendKeys. Если макрокоманда или набор макрокоманд связывается с сочетанием клавиш, которое уже используется в Access (например, Ctrl + С - сочетание клавиш для команды Копировать), то новое назначение макрокоманд на это сочетание клавиш заменит стандартное назначение команд Access.
Для задания назначения макросу Макрос1 комбинации клавиш Shift + F3 в окне базы данных выберем значок Макросы в списке Объекты и нажмем кнопку Создать. На панели инструментов нажмем кнопку Имена макросов, затем укажем в ячейке столбца Имя макроса сочетание клавиш Shift + F3, с которыми нужно связать макрокоманду или набег макрокоманд, как показано на рис. 38.
Рис. 38. Назначение клавиш макросу Макрос1
Добавим в макрос набор макрокоманд Макрос1, который должен выполняться при нажатии указанного сочетания клавиш. Сохраним группу макросов под именем AutoKeys.
Сразу после сохранения новые сочетания клавиш вступят в действие и будут доступны при каждом открытии базы данных.
Для проверки действия назначенной комбинации клавиш вызова макроса Макрос1 нажмем Shift + F3. Макрос будет вызван, и все его макрокоманды выполнятся.
Выполнение макрокоманд при открытии базы данных. Специальный макрос AutoExec позволяет автоматически выполнить макрокоманду или набор макрокоманд при открытии базы данных. В процессе открытия базы данных Microsoft Access выполняет поиск макроса с этим именем и, если такой макрос существует, автоматически запускает его. Для выполнения макрокоманд при открытии конкретной базы данных создайте макрос, содержащий макрокоманды и сохраните его под именем AutoExec. При следующем открытии базы данных Access автоматически запустит этот макрос.
Если требуется открыть базу данных, не выполняя при этом макрос AutoExec, открывайте базу данных при нажатой клавише Shift.
Другие параметры запуска базы данных или приложения можно задать в диалоговом окне Параметры запуска (меню Сервис).
13. Использование модулей в MS Access
Теперь, когда у вас уже есть небольшой опыт создания макроса, рассмотрим пример использования модуля в MS Access.
Для создания модулей необходимо иметь первоначальные знания по языку программирования Visual Basic. Прежде чем приступить к созданию модуля, рассмотрим несколько ключевых понятий. В MS Access существует два основных типа модулей: модули класса и стандартные модули. Каждая процедура в модуле может быть либо процедурой-функцией Function, либо процедурой-подпрограммой Sub.
Модули класса. Модули форм и модули отчетов являются модулями класса, связанными с определенной формой или отчетом. Они часто содержат процедуры обработки событий, запускаемые в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением формы или отчета и их откликом на события, такие как нажатие кнопки.
При создании первой процедуры обработки события для формы или отчета автоматически создается связанный с ней модуль формы или отчета. Для просмотра модуля для формы или отчета достаточно нажать кнопку Программа на панели инструментов в режиме конструктора.
В процедурах модулей форм и отчетов могут содержаться вызовы процедур, добавленных в стандартные модули.
Стандартные модули. В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом, а также часто используемые процедуры, которые могут быть запущены из любого окна базы данных.
Для просмотра списка стандартных модулей базы данных щелкните Модули в списке Объекты в окне базы данных. Формы, отчеты и стандартные модули выводятся также в окне просмотра объектов.
Процедуры: общие сведения. В языке Visual Basic замкнутыми программными единицами являются процедуры. Процедура содержит набор инструкций и методов, с помощью которых выполняются действия или рассчитывается значение. Например, в следующей процедуре обработки события метод OpenForm открывает форму «Заказы»:
Private Sub 0ткрытиеФормыЗаказы_СИск () 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(Year(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. Введите имя функции, а следом все аргументы функции в круглых скобках. Например, следующая инструкция описания функции Is Loaded указывает строковый аргумент 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 создает заготовку процедуры обработки события. Пользователю остается только добавить программу, которую требуется выполнять в ответ на конкретное событие формы, отчета или элемента управления. Например, можно запустить программу при нажатии пользователем кнопки или при изменении данных.
Для создания процедуры обработки события откройте форму или отчет в режиме конструктора формы или режиме конструктора отчета. Выведите на экран окно свойств формы, отчета либо раздела или элемента управления в форме или отчете. Перейдите на вкладку События и выберите свойство события, в ответ на которое должна выполняться процедура. Например, для того чтобы открыть процедуру обработки события «Изменение» (Change), выберите свойство Изменение (OnChange).
Нажмите кнопку построителя рядом с ячейкой свойства, чтобы открыть диалоговое окно Построитель. Дважды щелкните элемент Программы, чтобы отобразить инструкции Sub и End Sub в модуле формы или модуле отчета. Эти инструкции описывают (определяют) процедуру обработки события. Microsoft Access автоматически описывает в модуле формы или отчета процедуры обработки события для каждого объекта и события с использованием ключевого слова Private, указывающим, что доступ к этой процедуре возможен только из других процедур в том же модуле.
Добавьте в процедуру программу, которая должна выполняться в ответ на событие. Например, для подачи звукового сигнала через динамик компьютера при изменении данных в поле «Название» включите инструкцию Веер в процедуру обработки события Название Change:
Private Sub Название_ Change ()
Веер
End Sub
Процедура обработки события будет выполняться каждый раз при возникновении этого события для объекта.
Разработка модуля обработки события нажатия кнопок. Создадим модуль, обрабатывающий события нажатия двух кнопок на форме Форма_с_кнопкой. Кнопка Мальчики включает фильтр для отображения из таблицы Учащиеся в форме только мальчиков, а кнопка Девочки включает фильтр для отображения из таблицы Учащиеся в форме только девочек.
Сначала сохраним описанный ранее Макрос1, позволяющий просмотреть записи об учащихся женского пола, в виде модуля. Для этого выберем в меню Файл команду Сохранить как, а затем в диалоговом окне сохранения укажем на сохранение процедуры обработки события нажатия кнопки из макроса в виде модуля под именем Модуль1.
Рис. 39. Окно редактора Visual Basic
Редактор Visual Basic (рис. 39) представляет собой среду разработки, предназначенную для создания и редактирования программ на языке Visual Basic для приложений (VBA), содержащихся в файлах, создаваемых в приложениях Microsoft Office, включая базы данных Microsoft Access и проекты Microsoft Access. Редактор включает окно проекта, окно свойств, окно просмотра объектов и окно программы, а также средства отладки. Используя команды в меню View (Вид), можно открыть соответствующие окна.
Изучив текст модуля, мы увидим, что в нем в виде процедуры Sub описаны действия: открыть таблицу Учащиеся, открыть для нее форму и задать фильтр отбора данных по условию [Пол]<>Тгие.
Выбрав в списке объектов Формы, откроем форму Форма с кнопкой в режиме конструктора, добавим кнопку, зададим ей надпись Мальчики. Вызвав контекстное меню, выберем команду Обработка событий. В окне Построитель выбрать вариант Программы и щелкнуть ОК. После этого в окне Visual Basic откроется окно модуля. Запишем в нем процедуру обработки щелчка этой кнопки, указав в качестве условия отбора данных [Пол] = True.
Закроем окно Visual Basic, сохраним измененную форму и откроем ее. Щелкая кнопки Мальчики или Девочки, просмотрим отфильтрованные записи базы данных (только мальчиков или только девочек), как показано на рис. 40.
Рис. 40. Форма с двумя кнопками, фильтрующими записи
таблицы Учащиеся
14. Создание кнопки с помощью мастера
Процесс создания кнопок может быть значительно ускорен с помощью мастера. Открыв форму в режиме конструктора, добавим в нее кнопку . Для этого на панели инструментов конструктора выберем инструмент Кнопка. Выберем в форме место, в которое помещается верхний левый гол кнопки. Указав размер кнопки, отпустим кнопку мыши. После этого на экране раскрывается окно мастера Создание кнопок. Выбрав в списке категорий Работа с формой, в списке возможных составных действий выберем Печать формы.
Щелкнув кнопку Далее, выберем в качестве формы, печатаемой нажатием данной кнопки, форму Форма 1. Щелкнув кнопку Далее, выберем размещаемый на кнопке рисунок или текст, например, рисунок принтера.
На заключительном шаге диалога с мастером зададим имя кнопки для ссылок на нее и щелкнем кнопку Готово. Открыв измененную форму в режиме формы, мы увидим на ней добавленную кнопку Печать формы.
Если перейти в режим конструктора и, вызвав для кнопки контекстное меню, выбрать опцию Обработка событий, то раскроется окно Visual Basic со следующим текстом процедуры обработки нажатия созданной нами кнопки:
Private Sub Кнопка_СИск ()
On Error GoTo Егг_Кнопка_СИск
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: 'выход из процедуры sub Егг_Кнопка_СИск: ' процедура вывода сообщения об ошибке MsgBox Err.Description Resume Exit_KHonKa_Click End Sub ' конец процедуры печати
Можно внести изменения в текст данной процедуры. Они будут сохранены при сохранении изменений в структуре формы.
15. Связь между таблицами и целостность данных
До сих пор мы рассматривали операции с объектами на примере базы данных, состоящей из одной таблицы, но на практике, как правило, в составе базы данных имеется несколько таблиц.
Для координации таблиц между ними устанавливается связь. Связь между таблицами устанавливает отношения между совпадающими значениями в ключевых полях, обычно между полями, имеющими одинаковые имена в обеих таблицах. В большинстве случаев с ключевым полем одной таблицы, являющимся уникальным связи между таблицами возможны три типа связей.
Отношение «один-ко-многим». Это наиболее часто используемый тип связи между таблицами. В отношении «один-ко-многим» каждой записи в таблице А могут соответствовать несколько записей в таблице В, но запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.
Отношение «многие-ко-многим». При этом типе связи одной записи в таблице А могут соответствовать несколько записей в таблице В, а одной записи в таблице В - несколько записей в таблице А. Этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, являющихся внешними ключами таблиц А и В. Отношение «многие-ко-многим» по сути дела представляет собой два отношения «один-ко-многим» с третьей таблицей. Например, отношение «многие-ко-многим» между таблицами «Заказы» и «Товары» определяется путем создания двух отношений «один-ко-многим» с таблицей «Заказано».
Отношение «один-к-одному». При отношении «один-к-одному» запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Отношения этого типа используются не очень часто, поскольку большая часть сведений, связанных таким образом, может быть помещена в одну таблицу. Отношение «один-к-одному» может использоваться для разделения очень широких таблиц, для отделения части таблицы го соображениям защиты, а также для сохранения сведений, относящих-ся к подмножеству записей в главной таблице. Например, можно создать таблицу для отслеживания участия сотрудников в благотворительных спортивных мероприятиях.
Тип отношения в создаваемой Microsoft Access связи между таблицами зависит от способа определения связываемых полей.
Отношение «один-ко-многим» создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс.
Отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.
Отношение «многие-ко-многим» фактически является двумя отношениями «один-ко-многим» с третьей таблицей, первичный ключ которой состоит из полей - внешних ключей двух других таблиц.
Для поддержания связей между записями в связанных таблицах, а также обеспечения защиты от случайного удаления или изменения связанных данных в Microsoft Access используется механизм поддержки целостности данных.
Целостность данных означает:
• в связанное поле подчиненной таблицы можно вводить только те значения, которые имеются в связанном поле главной таблицы;
• из главной таблицы нельзя удалить запись, у которой значение связанного поля совпадает хотя бы с одним значением того же поля в подчиненной таблице.
Установить целостность данных можно, если выполнены следующие условия:
1. Связанное поле главной таблицы является ключевым полем ил имеет уникальный индекс. В большинстве случаев связывают первичный ключ (представленный в списке полей полужирным шрифтом) одной таблицы с соответствующим ему полем (часто имеющим то же имя) второй таблицы, которое называют полем внешнего ключа.
2. Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных и иметь содержимое одного типа. Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля (FieldSize).
Допускается определение связей не только для таблиц, но и для запросов. Причем для запросов соблюдение целостности данных не обязательно.
Установив целостность данных, необходимо следовать следующим правилам:
1. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод значений Null, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести значение Null в поле «КодКлиента».
2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к данному сотруднику.
3. Невозможно изменить значение первичного ключа в главной таблице, если существуют записи, связанные с данной записью. Например, невозможно изменить код сотрудника в таблице «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к этому сотруднику.
Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок Обеспечение целостности данных. Если данный флажок установлен, то любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки Каскадное обновление связанных полей и Каскадное удаление связанных полей.
Режимы каскадного обновления и каскадного удаления. Для отношений, в которых проверяется целостность данных, пользователь имеет возможность указать, следует ли автоматически выполнять для связанных описей операции каскадного обновления и каскадного удаления. Если включить данные параметры, станут возможными операции удаления и обновления, которые в противном случае запрещены условиями целостности данных. Чтобы обеспечить целостность данных при удалении записей или изменении значения первичного ключа в главной таблице, автоматически вносятся необходимые изменения в связанные таблицы.
Если при определении отношения установить флажок Каскадное обновление связанных полей, любое изменение значения первичного ключа главной таблицы приведет к автоматическому обновлению соответствующих значений во всех связанных записях. Например, при изменении кода клиента в таблице «Клиенты» будет автоматически обновлено поле «КодКлиента» во всех записях таблицы «Заказы» для заказов каждого клиента, поэтому целостность данных не будет нарушена. Microsoft Access выполнит каскадное обновление без ввода предупреждающих сообщений.
Если в главной таблице ключевым полем является поле счетчика, то установка флажка Каскадное обновление связанных полей не приведет к каким-либо результатам, так как изменить значение поля счетчика невозможно.
Если при определении отношения установить флажок Каскадное удаление связанных записей, любое удаление записи в главной таблице приведет к автоматическому удалению связанных записей в подчиненной таблице. Например, при удалении из таблицы «Клиенты» записи конкретного клиента будут автоматически удалены все связанные записи в таблице «Заказы» (а также записи в таблице «Заказано», связанные с записями в таблице «Заказы»). Если записи удаляются из формы или таблицы при установленном флажке Каскадное удаление связанных записей, Microsoft Access выводит предупреждение о возможности удаления связанных записей. Если же записи удаляются с помощью запроса на удаление, то Microsoft Access удаляет записи автоматически без вывода предупреждения.
Связь между таблицами определяется путем добавления связываемых таблиц в окно «Схема данных» с последующим перетаскиванием ключевого поля из одной таблицы в другую. Также можно определять связи с помощью клавиатуры. Создавать или изменять связи между открытыми таблицами нельзя. Для определения связей между таблицами закройте все открытые таблицы.
Создание связей между таблицами. Установление связей между таблицами рассмотрим на конкретном примере -базе данных Library (библиотека), состоящей из двух таблиц: Книги и Читатели (табл. 2).
Установим связь между таблицами Книги и Читатели. Выберем команду Схема данных в меню Сервис. После этого раскроется пустое окно Схема данных, а в главном меню Access появится новый пункт меню Связи. Выбрав в меню Связи команду Добавить таблицу, в диалоговом окне Добавление таблицы выберем вкладку Таблицы. Выбирая из списка всех таблиц открытой базы данных Library и щелкая кнопку Добавить, добавим в окно схемы данных таблицы Книги и Читатели. Закроем окно Добавление таблицы, щелкнув кнопку Закрыть.
Удерживая прижатой клавишу Ctrl, вы можете выделить (и добавить) сразу несколько таблиц.
Чтобы связать таблицу саму с собой, добавьте ее дважды. Это полезно, когда нужно создать поле подстановки, использующее значения этой же таблицы. Например, в таблице Сотрудники учебной базы данных Борей определена связь между полями КодСотрудника и Подчиняется, поэтому поле Подчиняется может отображать данные о сотруднике, имеющем соответствующее значение в поле КодСотрудника.
Таблица 2
Две таблицы: Книги и Читатели
Имя поля |
Тип данных |
Размер поля, формат |
Примечание |
Таблица Книги |
|||
Инвентарный номер |
Числовой |
Длинное целое |
Ключевое поле |
Автор |
Текстовый |
30 символов |
|
Название |
Текстовый |
50 символов |
|
Год издания |
Числовой |
Целое число |
|
Цена |
Числовой |
Одинарное с плавающей точкой |
|
Таблица Читатели |
|||
№ личного дела |
Текстовый |
10 символов |
Ключевое поле |
Фамилия |
Текстовый |
30 символов |
|
Имя |
Текстовый |
20 символов |
|
Адрес |
Текстовый |
50 символов |
|
Телефон |
Текстовый |
12 символов |
|
Класс |
Текстовый |
3 символа |
|
Книга |
Числовой |
Длинное целое |
Как показано на рис. 41, после этого в окне Схема данных будут представлены две выбранных нами таблицы, между которыми устанавливается связь.Для установления связи между двумя таблицами можно методом «Drag-and-Drop», как показано на рис. 41, переместить имя поля с первичным ключом главной таблицы (Инвентарный номер) на поле Книга подчиненной таблицы.
Рис. 41. Установление связи между таблицами
методом «Drag-and-Drop»
Как только вы отпустите левую кнопку мыши, на экране появится диалоговое окно Изменение связей. Для включения механизма поддержки целостности данных в связываемых таблицах установите флажок Обеспечение целостности данных (рис. 42).
Рис. 42. Определение параметров связи между таблицами
Рис. 43. Графическое изображение связи таблиц
После активизации флажка Обеспечение целостности данных становятся доступными два флажка каскадных операций. Включим переключатели каскадной модификации - обновления и удаления связанных записей.
В группе Тип отношений выберем один-ко-многим. Завершим создание связи, щелкнув кнопку Создать. Как показано на рис. 43, в окне Схема данных появится графическое изображение установленной связи. Пометки у концов линии связи 1-8 означают, что одна запись таблицы Книги может иметь сколько угодно связанных записей в таблице Читатели.
Закройте окно связи, сохранив изменения макета Схема данных.
Если необходимо просмотреть все связи, определенные в базе данных, нажмите кнопку Отобразить все связи на панели инструментов. Для просмотра связей только для определенной таблицы выберите таблицу, а затем на панели инструментов нажмите кнопку Отобразить прямые связи.
Если нужно изменить структуру таблицы, щелкните таблицу правой кнопкой и выберите команду Конструктор таблиц.
Для того чтобы просмотреть связи, определенные для конкретной таблицы, выберите эту таблицу, а затем нажмите кнопку Отобразить прямые связи на панели инструментов.
Если в окне схемы данных уже отображены все таблицы, связанные с выбранной таблицей, то нажатие кнопки Отобразить прямые связи не даст никаких результатов, поскольку при нажатии этой кнопки на экран только добавляются таблицы, связанные с текущей таблицей. Если требуется просмотреть прямую связь только с одной таблицей, нажмите кнопку Очистить макет на панели инструментов, чтобы удалить все таблицы из окна схемы данных (при этом таблицы и связи физически не удаляются, а только убираются из окна схемы данных). Затем снова добавьте нужную таблицу в окно схемы данных и нажмите кнопку Отобразить прямые связи. Для добавления таблицы нажмите кнопку Отобразить таблицу на панели инструментов, дважды щелкните нужную таблицу, а затем нажмите кнопку Закрыть.
Изменение или удаление существующих связей. Изменять связи между открытыми таблицами нельзя. Закройте все открытые таблицы. Переключитесь в окно базы данных и нажмите кнопку Схема данных на панели инструментов. Если таблиц, связи которых нужно изменить, нет на экране, нажмите кнопку Отобразить таблицу на панели инструментов и дважды щелкните таблицы, которые нужно добавить. Дважды щелкните линию связи, которую необходимо изменить, и установите параметры связи. Для получения дополнительных сведений о конкретном параметре диалогового окна Изменение связей нажмите кнопку контекстной справки и щелкните нужный параметр.
Рис. 44. Вид отчета о связях между таблицами
Для удаления выделите линию связи, которую необходимо удалить (выделенная линия становится более толстой), а затем нажмите клавишу Delete и подтвердите удаление.
Удаление таблицы из окна «Схема данных». Выберите таблицу, которую необходимо удалить, а затем нажмите клавишу Delete. При этом из окна Схема данных удаляется таблица и ее линии связи. Это действие затрагивает только отображение в окне схемы данных. Сама таблица и ее связи остаются в базе данных. Печать окна схемы данных. Для создания отчета, отображающего связи между таблицами базы данных в том виде, как они показаны в окне схемы данных* Microsoft Access использует мастер печати схемы данных.
Для создания такого отчета при открытом окне Схема данных выберите в меню Файл команду Печать схемы данных. После этого раскроется окно отчета о связях между таблицами в текущей базе данных, как показано на рис. 44.
Закрыть окно отчета с сохранением, щелкнув кнопку Да в ответ на запрос Сохранить изменения макета отчета?, задав имя отчета, щелкнуть кнопку ОК. Создание объектов (форм, отчетов, страниц доступа, макросов) для связанных таблиц отличается от ранее рассмотренных нами приемов тем, что пользователю необходимо выполнять выбор полей из нескольких таблиц и учитывать действие механизма защиты целостности данных. Рассмотрим эти особенности на примере создания формы для базы данных Library, состоящей из двух связанных таблиц.
Откроем базу данных Library. Выбрав объект Формы, щелкнем в правой области окна кнопку Создание формы с помощью мастера.
На первом шаге диалога мастера Создание форм выбрав таблицы Книги, а затем и Читатели, включим в форму все поля таблицы Книги, а также все поля таблицы Учащиеся, кроме поля Книга (это поле дублирует поле Инвентарный номер таблицы Книги), и щелкнем кнопку Далее.
Рис. 45. Окно главной формы Книги с подчиненной формой Читатели
На следующем шаге диалога с мастером выберем вид представления данных, указав в качестве главной таблицу Книги и включив опцию Подчиненные формы. Щелкнув кнопку Далее, выберем внешний вид подчиненной формы - ленточный, далее выберем стиль оформления Чертеж. На следующих этапах диалога с мастером Создание форм зададим имя для каждой из связанных форм, выберем в качестве дальнейших действий вариант Открыть форму для просмотра и ввода данных. Завершим создание форм, щелкнув кнопку Готово.
Для запуска щелкнем ярлычок главной формы Книги. После этого на экране раскроется окно формы Книги с подчиненной формой Читатели (рис. 45).
Как видно на рисунке, у главной и подчиненной форм имеются отдельные строки перехода по записям. При переходе в главной форме к другой книге в подчиненной форме выводятся данные о читателях этой книги. Если в такой форме ввести данные о книге и читателе, то они будут записаны в соответствующие таблицы.
Можно изменить форму, разработанную с помощью мастера Создание форм. Для этого закроем форму и, указав главную форму Книги щелкнем кнопку Конструктор в панели инструментов, как показано на рис. 46. В режиме конструктора переместим и изменим размеры элементов управления, их свойства. Изменим надписи и другие параметры макета формы. Завершим редактирование, выбрав в меню Вид команд; Режим формы.
Рис. 46. Вызов конструктора для редактирования главной формы
Аналогично, с использованием мастеров и в режиме конструктор создаются и изменяются другие объекты базы данных, состоящей из связанных таблиц.