СУБД microsoft access ДЛЯ НАЧИНАЮЩИХbek.sibadi.org/fulltext/ed452.pdfПример...

68
1 Т.А. Санькова СУБД MICROSOFT ACCESS ДЛЯ НАЧИНАЮЩИХ

Upload: others

Post on 03-Jan-2020

49 views

Category:

Documents


0 download

TRANSCRIPT

1

Т.А. Санькова

СУБД MICROSOFT ACCESS

ДЛЯ НАЧИНАЮЩИХ

2

Министерство образования Российской Федерации Сибирская государственная автомобильно-дорожная академия

(СибАДИ)

Т.А. Санькова

СУБД MICROSOFT ACCESS

ДЛЯ НАЧИНАЮЩИХ

Учебно-методическое пособие

Омск Издательство СибАДИ

2003

3

ГЛАВА I ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ

Понятие базы данных

База данных – совокупность данных, организованных по определенным

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

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

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

лет. Найти продавца, оформлявшего сделку 1 апреля 2000 года по

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

или зачет по информатике.

Информационная модель данных

Информационная модель – это формализованное описание информационных структур и операций над ними.

Виды информационных моделей: иерархическая; сетевая; реляционная. Иерархическая модель данных – модель данных, в основе которой

лежит граф типа «дерево». Вершине дерева соответствует тип записи, дуге – отношение между двумя типами записей.

Пример

СибАДИ

ИСУ ТТМ АТ …

Кафедра Кафедра Кафедра Кафедра … … «Информационные «Информационная «Детали «Дорожные технологии» безопасность» машин» машины»

4

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

Пример

Преподаватели Экзамены В середине 70-х годов пришли к концепции реляционной модели

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

Реляционная модель данных – множество нормализованных отношений (таблиц).

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

Пример Таблица «Студенты»

Фамилия Имя Отчество № зачетки Пол Дата рождения Иванов Иван Иванович М 98-23 М 11.09.81 Сидоров Сергей Петрович ИЭ 111-97 М 21.04.80

Таблица «Преподаватели»

Код преподавателя ФИО Должность

11 Иванов И. П. Доцент 12 Петров С. В. Доцент 13 Смирнов С. Д. Преподаватель

В базе данных может содержаться одна или несколько таблиц.

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

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

Иванов И.И. Петров А.И. Петрова Н.С.

Информационные технологии Информатика Математика

5

Таблица – некоторая регулярная структура, состоящая из конечного набора однотипных записей.

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

Пример В таблице, хранящей данные о студентах (см. предыдущий пример): единичные данные: М 98-23, Сергей, 11 ЭУП; поля: Фамилия, № зачетки, Пол, Дата рождения – столбцы; записи: вся строка про Иванова, вся строка про Сидорова. Все записи состоят из одинаковых полей. Данные одного поля во всех

записях имеют одинаковый тип, но разные поля могут иметь разный тип данных. Например, поле Фамилия – текстовое, поле Дата рождения имеет тип «Дата/время».

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

Некоторые поля обладают важным для построения информационных

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

Пример Номер зачетки (поле № зачетки) студента является уникальным. Зная

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

ключом), по нему можно найти конкретную запись в таблице. Нельзя использовать в качестве первичного ключа поле Фамилия, т.к. в

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

Однозначно идентифицировать объект может не одно, а два и более

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

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

тому же принципу. Тогда для идентификации студента необходимо знать

6

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

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

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

Внешний ключ

Для связи таблиц между собой используется внешний ключ – поле,

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

Пример Пусть в базе данных имеются таблицы со сведениями о студентах и об

итогах сессии. Таблица «Студенты»

№ зачетки Фамилия Имя Отчество Пол Дата рождения М 98-23 Иванов Иван Петрович М 11.11.81 М 98-24 Петров Петр Петрович М 12.09.81 М 97-25 Петров Петр Петрович М 11.09.80

Таблица «Итоги сессии»

№ зачетки Название экзамена Дата Оценка М 98-23 Физика 02.01.99 Хорошо М 98-23 Математика 08.01.99 Отлично М 98-23 Информатика 12.01.99 Хорошо М 98-24 Физика 02.01.99 Отлично Эти таблицы связаны между собой с помощью поля № зачетки. Поле,

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

Отношения между таблицами

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

объектами, описанными в таблицах. Существует четыре типа отношений между объектами: один-к-одному (1:1); один-ко-многим (1:М);

7

многие-к-одному (М:1); многие-ко-многим (М:М).

Отношение «один-к-одному»

Отношение 1:1 означает, что каждая запись одной таблицы

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

Факультеты Деканы

Связь таблиц осуществляется на основании данных в совпадающих полях (внешних ключах).

«Факультеты» «Деканы» Код факультета Код декана Название (полное) ФИО Код декана Ученая степень

Таблица «Факультеты»

Код факультета Название Код декана 1 ТТМ 11 2 ПГС 12

Таблица «Деканы» Код декана ФИО Ученая степень

11 Гордыч Д.С. Канд. техн. наук 12 Кардаев Е.М. Канд. техн. наук

Отношение «один-ко-многим»

Отношение 1:М означает, что одна запись первой таблицы может

соответствовать нескольким записям второй таблицы.

8

Пример Предметная область: институт. Объекты: студенты и экзамены. Отношение: сдача экзамена. Студент Экзамен

Таблица «Студенты»

№ зачетки Фамилия Имя Отчество Пол Дата рождения М 98-23 Иванов Иван Петрович М 11.11.81 М 98-24 Петров Петр Петрович М 12.09.81 СМ 99-2 Иванов Иван Иванович М 11.11.82

Таблица «Итоги сессии»

№ зачетки Название экзамена Дата Оценка М 98-23 Физика 02.01.99 Хорошо М 98-23 Математика 08.01.99 Отлично М 98-24 Физика 02.01.99 Удовл. М 98-24 История 11.01.99 Хорошо

Отношение «многие-к-одному»

Отношение М:1 означает, что одна запись второй таблицы может

соответствовать нескольким записям первой таблицы. Этот вид отношений аналогичен отношению 1:М.

Пример Предметная область: институт. Объекты: студенты и факультеты. Отношение: учеба. Студенты Факультеты

9

Отношение «многие-ко-многим» Отношение М:М означает, что одна запись первой таблицы может

быть связана с несколькими записями второй таблицы, и наоборот. Пример Предметная область: институт. Объекты: преподаватели и дисциплины. Отношение: занятия (или прием зачета или экзамена). Каждый

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

Таблица «Дисциплины»

Код Название Семестр 125 Информатика 1

53 Информационные технологии 2 25 Технологии программирования 3

Таблица «Преподаватели»

Код ФИО Должность Код кафедры 53 Иванов И. П. Доцент 1 53 Петров С. В. Доцент 1

125 Смирнов С. Д. Преподаватель 1 125 Петров С. В. Доцент 1

25 Петров С. В. Доцент 1 При таком подходе в одной из таблиц необходимо заводить несколько

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

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

«Дисциплины» «Занятия» «Преподаватели»

Код Код занятия Код преподавателя Название Код дисциплины ФИО Семестр Код преподавателя Должность Код кафедры

10

Код Название Семестр 125 Информатика 1

53 Информационные технологии 2 25 Технологии программирования 3

Код Код преподавателя

53 11 53 12

125 12 125 13

25 12

Код преподавателя ФИО Должность Код кафедры 11 Иванов И. П. Доцент 1 12 Петров С. В. Доцент 1 13 Смирнов С. Д. Преподаватель 1

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

При проектировании реляционной базы данных необходимо решить

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

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

Нормализация может оказаться сложным процессом со многими характерными правилами и различными уровнями нормальной формы. Существует 4 нормальные формы: 1НФ, 2НФ, 3НФ, 4НФ. Причем соблюдается принцип вложенности (рис. 1).

Рис. 1. Нормальные формы

1НФ 2НФ 3НФ 4НФ

11

Первая нормальная форма (1НФ)

Характеристики таблицы, находящейся в 1НФ: 1. Нет повторяющихся строк. 2. Строки и столбцы не упорядочены. 3. Нет повторяющихся групп. Пример База данных «Студенты», ставящая в соответствие студентам

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

Если 1000 студентов посещают десяток курсов, описание каждого курса и преподаватель встретятся много раз – по одному разу на каждого студента, посещающего этот курс.

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

Вторая нормальная форма (2НФ)

Характеристики таблицы, находящейся в 2НФ: 1. Таблица находится в 1НФ. 2. Каждое поле таблицы функционально полно зависит от первичного

ключа. Это относится только к тем таблицам, которые имеют составной

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

Пример База данных «Итоги сессии» включает поля: № зачетки, Код экзамена,

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

Тогда поле Номер группы зависит только от части первичного ключа (от поля № зачетки), следовательно, таблица не будет находиться во 2НФ. Чтобы привести таблицу во 2НФ, необходимо убрать из нее поле Номер группы.

Третья нормальная форма (3НФ)

Характеристики таблицы, находящейся в 3НФ: 1. Таблица находится во 2НФ.

12

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

Т. е. ни одно поле не зависит ни от какого другого, кроме как от полей, соответствующих первичному ключу.

Пример Таблица «Студенты» состоит из полей: ФИО студента, Дата

рождения, Адрес, Курс, Факультет, ФИО декана, Специальность декана, № зачетки, Группа.

Если в качестве первичного ключа выбрать № зачетки, то поля ФИО декана и Специальность декана зависят от первичного ключа транзитивно: ФИО декана через Факультет, а Специальность декана через ФИО декана. Этого не должно быть.

Четвертая нормальная форма (4НФ)

Если в схеме отношений существуют многозначные зависимости, то

необходимо привести ее в 4НФ. Нормализация отношения осуществляется с помощью декомпозиции схемы отношений.

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

Пример проектирования нормализованной базы данных

Пусть имеется база данных «Сессия», в которой содержатся

следующие данные (табл. 1).

Таблица 1 Перечень полей базы данных и их типов

Поле Тип данных Поле Тип данных

№ зачетки Текстовый Декан Текстовый Фамилия Текстовый Вид оценки знаний Текстовый Имя Текстовый Дисциплина Текстовый Отчество Текстовый Дата Дата/время Город Текстовый Преподаватель Текстовый Адрес Текстовый Должность преподавателя Текстовый Дата рождения Дата/время Кафедра Текстовый Год поступления Числовой Заведующий кафедрой Текстовый Номер группы Текстовый Оценка Текстовый Факультет Текстовый

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

сдаче очередного экзамена или зачета снова нужно вводить все данные про каждого студента);

13

при изменении одних полей (адрес, преподаватель, должность) необходимо изменять все записи, связанные с этим полем;

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

Описанная база данных является ненормированной. Каждый студент

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

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

иметь уникальный индекс (первичный ключ). Пусть в первой таблице «Студенты» в качестве первичного ключа будет поле № зачетки, во второй таблице «Зачеты и экзамены» – поле Код зач/экз. В третью таблицу «Итоги сессии» добавим два поля № зачетки и Код зач/экз для связи с первой и второй таблицами, и в качестве первичного ключа возьмем эти два поля. После того, как мы разделили повторяющиеся объекты и определили ключевые поля в каждой таблице, база данных находится в 1НФ (рис. 2).

Студент Итоги сессии Зачеты и экзамены

№ зачетки

№ зачетки

Код зач/экз Фамилия Код зач/экз Вид оценки знаний Имя Дата Дисциплина Отчество Преподаватель Семестр Город Должность преподавателя Адрес Кафедра Дата рождения Заведующий кафедрой Год поступления Оценка Номер группы Факультет Декан

Рис. 2. Первая нормальная форма

Понятие 2НФ относится только к таблицам, имеющим составной ключ.

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

14

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

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

Преподаватель Кафедра

Код преподавателя Код кафедры ФИО Кафедра Должность преподавателя Заведующий кафедрой Код кафедры Код факультета

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

Факультет Код факультета Факультет Декан

В результате этой работы у нас получится нормализованная структура

базы данных (рис. 3).

Задание 1. Проектирование базы данных Нормализовать структуру базы данных, включающую перечисленные

поля: 1. «СОРЕВНОВАНИЯ»: фамилия спортсмена, страна проживания,

город проживания, дата рождения, вид спорта, фамилия тренера, название соревнований, дата проведения соревнований, место проведения соревнований, занятое спортсменом место.

2. «ПОДПИСКА»: тип издания, название издания, индекс, фамилия подписчика, адрес подписчика, дата начала подписки, дата окончания срока подписки.

3. «ФУТБОЛЬНЫЙ ЧЕМПИОНАТ»: название команды, город, тренер, дата проведения игры, название команды-соперника, количество забитых мячей, количество пропущенных мячей, количество набранных за игру очков.

15

Рис. 3. Нормализованная база данных 4. «ВИДЕОПРОКАТ»: название фильма, страна, время, жанр, дата

выпуска, ФИО клиента, адрес клиента, дата выдачи кассеты, дата возврата кассеты.

5. «АПТЕКА»: наименование лекарства, дата поступления, форма выпуска, количество в упаковке, количество упаковок в наличии, цена за упаковку, показания к применению, противопоказания, срок годности.

6. «СТРАНЫ МИРА»: страна, столица, часть света, материк, население, площадь, название реки, исток, устье, протяженность реки.

7. «СТРАХОВАЯ КОМПАНИЯ»: ФИО, адрес, место работы, дата рождения, серия страхового полиса, номер страхового полиса, паспортные данные, страховая сумма, дата происшествия, причина выплаты по страховке, начисленный процент по страховке.

8. «БИБЛИОТЕКА»: автор книги, название книги, год издания, тираж, количество экземпляров, ФИО читателя, адрес читателя, телефон читателя.

9. «ПОСТАВКИ ТОВАРОВ»: наименование товара, страна-производитель, стоимость, страна-заказчик, название фирмы-заказчика, адрес заказчика, телефон заказчика, дата оформления заказа, объем поставки.

10. «ТЕЛЕВИДЕНИЕ»: название программы, ведущий, время выхода в эфир, день выхода в эфир, длительность программы (часы), спонсор

16

программы, телефон спонсора, адрес спонсора, место работы, паспортные данные.

ГЛАВА II

СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MICROSOFT ACCESS В 1993 году Microsoft Access стала одной из самых популярных систем

управления базами данных (СУБД). Она относится к реляционным базам данных. Одно из существенных преимуществ Microsoft Access – это возможность работы с данными других источников, включая наиболее популярные СУБД для персональных компьютеров (dBASE, Paradox, FoxPro).

Microsoft Access теперь полностью интегрирована с другими приложениями пакета Microsoft Office: Microsoft Word, Microsoft Excel, PowerPoint и Microsoft Mail.

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

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

При загрузке Microsoft Access (с помощью кнопки Пуск на панели

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

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

Выбрав нужную папку и указав имя базы данных, нажмите на кнопку Создать.

Если вы уже работали в Access, то создать новую базу данных можно с помощью кнопки Создать базу данных на панели инструментов (рис. 5) или с помощью команды Создать меню Файл, после чего на экране появится диалоговое окно «Файл новой базы данных».

17

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

Рис. 4. Окно создания (открытия) базы данных

Рис. 5. Главная панель управления Access

Имеется также возможность сразу создать с помощью мастера базу

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

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

После того, как будет создана новая база данных или открыта существующая база данных, на экране появится окно базы данных (рис. 6).

Окно базы данных содержит вкладки Таблицы, Запросы, Формы, Отчеты, Макросы и Модули – это объекты базы данных, а также кнопки Открыть, Конструктор, Создать.

18

Кроме главного меню в Access, как и в других приложениях Windows, существует меню, называемое контекстным. Это меню вызывается нажатием правой кнопки мыши на каком-либо объекте. Контекстным оно называется потому, что меняет свое содержание в зависимости от положения курсора мыши.

Объекты базы данных Access

В Access база данных – это хранилище данных и соответствующих им

объектов. Объекты базы данных – это таблицы, запросы, формы, отчеты, макросы и модули.

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

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

19

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

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

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

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

Модуль – объект, содержащий программы на Microsoft Access Basic, которые позволяют вам разбить процесс на более мелкие действия и обнаружить те ошибки, которые вы не могли бы найти с использованием макросов.

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

Создание новой таблицы в режиме конструктора

1. В окне базы данных выбрать вкладку Таблица. 2. Нажать кнопку Создать. 3. Выбрать режим Конструктор и нажать кнопку ОК. 4. Ввести названия полей, определить их типы и установить нужные

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

окно «Новая таблица» (рис. 7). В этом окне вам предоставляется пять вариантов выбора: Режим таблицы. Таблица представляется в виде собственно

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

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

20

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

Импорт таблиц. Созданные в другой СУБД таблицы можно импортировать в Access со всеми записями.

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

Рис. 7. Диалоговое окно «Новая таблица» После того, как вы выполните пункт 3, на экране появится окно

конструктора таблиц (рис. 8). Окно состоит из двух частей: верхней, в которой указываются названия

и типы полей (данных), и нижней, в которой определяются свойства каждого поля. Раздел Свойства поля состоит в свою очередь из двух вкладок: Общие и Подстановка. В правом нижнем углу окна конструктора появляется описание того объекта окна, на который указывает курсор. Переход от верхней части окна конструктора к нижней и наоборот осуществляется с помощью клавиши [F6] или с помощью мыши.

Ввод полей и определение их типов

Имя поля вводится с клавиатуры в столбце «Имя поля». Чтобы задать

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

21

Рис. 8. Окно конструктора таблиц

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

Свойства поля зависят от его типа. Установка свойств полей таблицы осуществляется в режиме конструктора в разделе Свойства. Описание каждого свойства появляется в правом нижнем углу окна конструктора таблицы (см. рис. 8).

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

Если для таблицы обозначены ключевые поля, то Microsoft Access

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

Ключевые поля счетчика

Поле счетчика можно задать таким образом, чтобы при добавлении

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

22

Простой ключ

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

Составной ключ

В случаях, когда невозможно гарантировать уникальность значений

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

Пример База данных «Студенты», таблица «Итоги сессии» (см. рис. 3). Ключ в этой таблице состоит из двух полей: Код зач/экз и Код

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

Примечание. Если определить подходящий набор полей для составного

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

Создание и изменение ключевых полей

1. Откройте таблицу в режиме конструктора. 2. С помощью мыши выделите одно или несколько полей, которые

необходимо определить как ключевые. 3. Нажмите кнопку Ключевое поле на панели инструментов.

Удаление ключевых полей

1. Если ключевое поле связано, то до удаления ключа необходимо

удалить данную связь. 2. Откройте таблицу в режиме конструктора. 3. Выделите ключевое поле и нажмите кнопку Ключевое поле на

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

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

23

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

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

После создания таблиц необходимо определить связи между этими

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

Для того чтобы связать таблицы, необходимо: 1. Закрыть все открытые таблицы. 2. Переключиться в окно базы данных. 3. Выбрать команду Схема данных в меню Сервис или нажать кнопку

Схема данных на панели инструментов. 4. В появившемся диалоговом окне «Добавление таблиц» выбрать

нужные таблицы и добавить их с помощью кнопки Добавить или двойным щелчком мыши. Нажать кнопку Закрыть.

5. Для связывания двух таблиц выбрать поле в одной таблице и перенести его с помощью мыши на соответствующее поле во второй таблице (для связывания сразу нескольких полей удерживайте нажатой клавишу [Ctrl]).

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

7. Повторить шаги 5, 6 для каждой пары связываемых таблиц.

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

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

Поле счетчика можно связывать с числовым полем, если в поле задан размер поля – «Длинное целое».

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

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

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

24

Задание 2. Создание базы данных

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

Создание запросов к базе данных

Запрос – объект, который позволяет пользователю получить нужные

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

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

Запросы на выборку

Запросы на выборку позволяют выбрать из одной или нескольких

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

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

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

2. В диалоговом окне «Новый запрос» выберите команду Конструктор и нажмите кнопку OK.

3. В диалоговом окне «Добавление таблицы» перейдите к вкладке, которая включает объекты, содержащие требуемые данные.

4. Для добавления объектов в запрос выделите объект и нажмите кнопку Добавить или дважды щелкните кнопкой мыши на имени объекта. Нажмите кнопку Закрыть.

5. Если запрос содержит несколько таблиц или запросов, убедитесь, что между собой их соединяет линия. Для Microsoft Access это означает, что данные связаны. Если же связей нет, создайте их (см. определение связей между таблицами).

6. Добавьте поля в запрос, перемещая их имена с помощью мыши из списка полей в бланк запроса (рис. 9).

7. Внесите в запрос необходимые усовершенствования: определите условие отбора, порядок сортировки, создайте вычисляемые поля (для вычисления суммы, среднего значения, пересчета и других действий с данными).

25

8. Нажмите кнопку Сохранить на панели инструментов, чтобы сохранить запрос. Введите имя и нажмите кнопку OK.

9. Нажмите кнопку Запуск на панели инструментов, чтобы выполнить запрос.

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

Рис. 9. Окно конструктора запроса

Окно конструктора запроса

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

Ввод условий отбора

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

список полей

бланк запроса

26

2000 году. Для этого необходимо указать условие отбора, отсеивающее все записи, кроме тех, у которых в поле «Год поступления» указано «2000».

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

Таблица 2

Назначение строк бланка запроса в режиме конструктора Строка Назначение

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

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

Сортировка: Можно установить порядок сортировки записей для одного или нескольких полей

Вывод на экран: Флажками помечаются те поля, которые должны быть выведены на экран при выполнении запроса

Условие отбора: Для ввода условия, которое вы хотите использовать в качестве фильтра

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

Пример Запрос: вывести на экран сведения о студентах, родившихся позднее

21.09.83, отсортировав записи по полю Фамилия. Окно конструктора запроса должно выглядеть в соответствии с рисунком (см. рис. 9). Результат выполнения запроса выглядит следующим образом (рис. 10):

Рис. 10. Результат выполнения запроса

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

27

Пример Запрос: составить список всех студентов, которые по физике

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

Поле: Фамилия Имя Номер группы Дисциплина Оценка Вывод на экран: Условие отбора: Физика 5

Если выражения находятся в разных строках бланка запроса (т.е.

используется строка «Или:»), то автоматически используется оператор Or. Это означает, что выведены будут записи, отвечающие любому из условий отбора.

Пример 1 Найти студентов с фамилией Иванов или Сидоров. Поле: Фамилия Имя Номер группы Вывод на экран: Условие отбора: Иванов Или: Сидоров Пример 2 Найти студентов, которые получили по физике «отлично» или по

химии «хорошо».

Поле: Фамилия Номер группы Дисциплина Оценка Вывод на экран: Условие отбора: Физика 5 Или: Химия 4

Пример 3 Найти студентов, получивших по физике «отлично» или «хорошо».

Поле: Фамилия № зачетки Дисциплина Оценка Условие отбора: Физика 5 Or 4

Пример 4 Найти студентов с фамилией Иванов, родившихся ранее 1 января 1986

года, и студентов с фамилией Сидоров, родившихся в период с 1 января 1982 года по 1 января 1984 года.

Поле: Фамилия № зачетки Дата рождения Условие отбора: Иванов <01.01.86 Или: Сидоров >=01.01.82 and <=01.01.84

28

Операторы сравнения В условии отбора можно использовать операторы сравнения.

Рассмотрим основные из них. Not (не) – отрицание. Пример Not(Иванов) And (и) – условия должны выполняться одновременно. Пример >100 And <400 Or (или) – хотя бы одно из условий должно выполняться. Пример Иванов Or Сидоров Between (между) – позволяет задать диапазон значений. Пример Between 10 and 30 In (в) – позволяет задать используемый для сравнения список значений. Пример In (1,3,5,7,9) Like – для поиска образцов текста. В образец поиска можно включать

символы шаблона ? ! * - # [ ] (табл. 3).

Таблица 3 Символы шаблона

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

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

пр* – поиск слов при, привет, примечание *ов – все слова, заканчивающиеся на ов

? Соответствует одному любому текстовому символу

B?ll – поиск слов ball, bell и bill К?т – поиск слов кот, кит

[ ] Соответствует любому одному символу из заключенных в скобки

B[ae]ll – поиск слов ball и bell, но не bill Ст[оу]л – поиск слов стол, стул

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

b[!ae]ll – поиск слов bill и bull, но не bell или ball

- Соответствует любому символу из диапазона. Необходимо указывать этот диапазон по возрастанию (от A до Z, но не от Z до A)

b[a-c]d – поиск слов bad, bbd и bcd

# Соответствует любой цифре 1#3 – поиск значений 103, 113, 123, 133, 143, 153, 163, 173, 183, 193

29

Пример Like “?[a-k]d[0-9]*” – первый символ любой, второй символ – буква от

a до k, третий символ d, четвертый символ – цифра от 0 до 9, далее произвольная последовательность любых символов.

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

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

Невозможно выполнить поиск пары квадратных скобок (открывающей и закрывающей [ ]), поскольку эта комбинация символов интерпретируется в Microsoft Access как пустая строка.

Кроме операторов сравнения, описанных выше, в условиях отбора

используют и знаки сравнения (>, <, =, <>, >=, <=). Пример >=09.05.85 >=100 and <=200 (это выражение соответствует оператору Between 100

and 200)

Запросы с параметром

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

Создание запроса с параметром

1. Создайте запрос на выборку. 2. В режиме конструктора запроса переместите с помощью мыши поля

из списка полей в бланк запроса. 3. Для каждого поля, которое предполагается использовать как

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

[Введите фамилию студента]

30

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

Between [Введите начальную дату:] And [Введите конечную дату:]. 4. Для просмотра результатов нажмите кнопку Запуск на панели

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

заданного числа.

Поле: № зачетки Фамилия Вид оценки знаний Дисциплина Оценка Условие отбора:

Экзамен [Введи дисциплину]

>[Введи оценку]

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

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

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

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

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

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

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

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

Создание вычисляемых полей с помощью построителя выражений

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

Поле. 3. Нажать кнопку Построить на панели инструментов. 4. Создать выражение и нажать кнопку ОК.

31

После того как вы нажмете кнопку Построить, на экране появится окно построителя выражений (рис. 11).

Рис. 11. Окно построителя выражений

В левом нижнем поле окна построителя выражений отображается

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

Встроенные функции Microsoft Access

Рассмотрим основные функции, используемые в Access при

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

Функции преобразования типов данных

Str(число) – переводит число в строку. Val(строка) – переводит строку в число.

Функции даты и времени Date() – возвращает текущую системную дату.

32

Day(дата) – возвращает целое число в интервале от 1 до 31, представляющее число в дате, указанной в качестве аргумента.

Time() – возвращает текущее системное время. Hour(дата) – возвращает целое число в интервале от 0 до 23,

представляющее часы в дате, указанной в качестве аргумента. Minute(дата) – возвращает целое число в интервале от 0 до 59,

представляющее минуты в дате, указанной в качестве аргумента. Month(дата) – возвращает целое число в интервале от 1 до 12,

представляющее номер месяца в дате, указанной в качестве аргумента. Weekday(дата) – возвращает целое число от 1 (воскресенье) до 7

(суббота), соответствующее номеру дня недели в заданной дате. Year(дата) – возвращает целое число, представляющее год в дате,

указанной в качестве аргумента.

Текстовые функции InStr(начало, строка1, строка2, сравнение) – возвращает первую

позицию, начиная с которой, одна строка (строка2) содержится в другой строке (строка1). Аргумент «начало» указывает, начиная с какой позиции нужно искать подстроку в строке, аргумент «сравнение» указывает метод сравнения строк (0 – учитывает регистр символов, 1 – не учитывает регистр символов).

LCase(строка) – преобразует все символы строки в нижний регистр (строчные буквы).

Left(строка, число) – возвращает заданное число символов из строки, начиная с первого символа.

Len(строка) – определяет длину строки. Right(строка, число) – возвращает заданное число символов,

расположенных в конце строки. UCase(строка) – преобразует все символы строки в верхний регистр

(заглавные буквы).

Сообщения InputBox(сообщение) – выводит на экран диалоговое окно,

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

MsgBox(выражение) – выводит на экран диалоговое окно, содержащее сообщение. В качестве аргумента может быть записан текст, заключенный в кавычки.

33

Функции управления и проверки IIf(условие, выражение1, выражение2) – возвращает одно из двух

значений в зависимости от истинности указанного условия). IsNull(выражение) – возвращает значение логического типа (истина,

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

Статистические функции Avg(выражение) – вычисляет среднее арифметическое. Count(выражение) – вычисляет количество. Max(выражение) – вычисляет максимальное значение. Min(выражение) – вычисляет минимальное значение. Sum(выражение) – вычисляет сумму. Пример 1 Найти студентов, родившихся в первой половине месяца. Необходимо создать вычисляемое поле в запросе, в котором будет

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

Поле: № зачетки Выражение1: Day([Студенты]![Дата рождения]) Вывод на экран: Условие отбора: >=1 And <=15

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

Поле: Выражение1:Year(Date())-Year([Студенты]![Дата рождения]) Вывод на экран: Условие отбора: >=[Введите возраст]

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

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

Поле: № зачетки Фамилия Выражение1: Left([Студенты]![Фамилия];1) Вывод на экран:

Условие отбора:

“С”

34

Пример 4 Создать запрос, в котором формируется новое поле: Фамилия и

инициалы на основе имеющихся полей Фамилия, Имя, Отчество (Пр. Иванов П.А.).

Выражение может выглядеть следующим образом:

ФИО: [Студенты]![Фамилия]+“ ”+Left([Студенты]![Имя];1)+”.”+ Left([Студенты]![Отчество];1)+ ”.”

Итоговые (групповые) операции

Иногда нас интересует не каждая строка таблицы, а итоговые значения

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

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

Пример Найти количество студентов, родившихся позднее 1 сентября 1983

года. Бланк запроса может выглядеть следующим образом: Поле: Фамилия Дата рождения Групповая операция: Count Вывод на экран: Условие отбора: >01.09.83

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

С помощью запроса можно изменить группу записей, т.е. обновить

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

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

35

2. В режиме конструктора запроса нажать стрелку рядом с кнопкой Тип запроса на панели инструментов и выбрать команду Обновление.

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

4. В случае необходимости в ячейке Условие отбора указать условие отбора.

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

6. Чтобы просмотреть обновляемые записи, нажать кнопку Вид на панели инструментов. Выводимый список не будет содержать новых значений. Для возврата в режим конструктора запроса снова нажать кнопку Вид на панели инструментов. Любые изменения следует вносить в режиме конструктора.

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

Примечание. Чтобы остановить выполнение запроса, нажмите клавиши

[Ctrl]+[Break].

Запросы на удаление записей Запрос на удаление позволяет удалить записи из одной таблицы, из

нескольких таблиц с отношением «один-к-одному» или с отношением «один-ко-многим», если было установлено каскадное удаление.

Удаление записей из одной или нескольких таблиц,

связанных отношением «один-к-одному»

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

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

3. Для таблиц, из которых необходимо удалить записи, переместите символ «звездочка» из списка полей в бланк запроса. В ячейке Удаление в этом поле появляется значение Из.

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

36

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

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

7. Для удаления записей нажмите кнопку Запуск на панели инструментов.

Примечание. Чтобы остановить выполнение запроса, нажмите клавиши

[Ctrl]+[Break].

Удаление записей с помощью запроса, включающего только таблицу на стороне «один»,

связанную отношением «один-ко-многим»

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

1. Создайте запрос, содержащий таблицу на стороне «один», из

которой необходимо удалить записи. 2. См. шаги 2-7 выше.

Удаление записей с помощью запроса,

включающего обе таблицы, связанные отношением «один-ко-многим»

1. Создайте новый запрос, содержащий таблицы, из которых

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

Тип запроса на панели инструментов и выберите команду Удаление.

3. Из таблицы, содержащей связанные записи (на стороне «многие» отношения «один-ко-многим»), переместите с помощью мыши символ «звездочка» из списка полей в бланк запроса. В ячейке Удаление в этом поле появляется значение Из.

4. Из главной таблицы (на стороне «один» отношения «один-ко-многим») переместите поля, для которых необходимо установить условие отбора, в бланк запроса. В ячейке Удаление в этом поле появляется значение Условие.

5. См. шаги 5-6 выше.

37

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

7. Для каждой таблицы на стороне «многие» выделите список полей, которые необходимо удалить из запроса, и нажмите клавишу [Delete].

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

Задание 3. Создание запросов

База данных «СПОРТСМЕНЫ». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: спортсмены из США и России, занявшие призовые места; спортсмены из всех стран, кроме России, занимающиеся

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

местам и странам; спортсмены из Украины, занимающиеся легкой атлетикой, и

спортсмены из России, занимающиеся спортивной гимнастикой. 2. Вывести данные о спортсменах, младше определенного возраста и

занимающихся определенным видом спорта. 3. Найти самого молодого участника соревнований. 4. Заменить вид спорта «спортивная гимнастика» на «гимнастика». 5. Удалить из базы данных все записи о спортсменах, занявших

десятое место. База данных «ПОДПИСКА». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: подписчики, подписавшиеся на газету «Звезда» или журнал

«Звезда»; подписчики, оформившие подписку с 01.05.97 по 01.07.98; подписчики, подписавшиеся на газету до 31.12.98 и на журнал до

30.06.98; вывести на экран поля фамилия, с какого и по какое для

подписчиков, подписавшихся на газету «Звезда» с 01.01.98 и на журнал «Звезда» в любое время.

2. Вывести список подписных изданий, на которые была оформлена подписка в заданный год.

38

3. Найти подписчика, подписавшегося на заданную газету позже всех. 4. Заменить индекс на 44044 для всех подписавшихся на издание с

индексом 40532. 5. Удалить из базы данных сведения о подписчиках, подписавшихся

на газету «Гудок». База данных «ФУТБОЛЬНЫЙ ЧЕМПИОНАТ». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: команды, забившие 2-5 мячей; команды, игравшие с московским «Динамо» и забившие ему 4

мяча; команды из всех городов, кроме Омска, пропустившие 2 мяча; команды, получившие 10 очков и игравшие с 01.01.99 по 01.01.00.

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

забившие максимальное количество мячей. 4. Заменить название команды «Салават Юлаев» на «Салават». 5. Удалить из базы данных все записи о командах Москвы и Минска,

не набравших 15 очков. База данных «ВИДЕОПРОКАТ». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: боевики с продолжительностью более 110 минут; боевики, снятые в России, и фантастические фильмы, снятые в

США в 1999 году; фильмы продолжительностью менее 100 минут, выпущенные

ранее 1998 года в США; фильмы жанров мелодрамма и фантастика.

2. Вывести данные о фильмах, которые брали на три дня. 3. Найти самый последний фильм, выпущенный в определенной

стране в определенном месяце. 4. Заменить название страны на USA для всех фильмов, снятых в

США. 5. Удалить из базы данных все комедии, снятые во Франции.

База данных «АПТЕКА». 1. Создать запросы к базе данных, с помощью которых будут

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

39

лекарства, выпускаемые в таблетках по 100 штук в упаковке; лекарства, поступившие в аптеку в заданный период.

2. Вывести список лекарственных средств, выпускаемых в виде сиропа, срок годности которых истечет в текущем году.

3. Найти самое дорогое лекарственное средство, противопоказанное больным астмой.

4. Заменить название страны на USA для всех лекарств, выпущенных в США.

5. Удалить из базы данных сведения о лекарствах, которых нет в наличии.

База данных «СТРАНЫ МИРА». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: страны с населением более 10 000 тыс. человек и страны Азии; страны Европы с населением от 8 000 до 30 000 тыс. человек; страны, по территории которых протекает река Иртыш; страны Европы с площадью менее 100 тыс. кв. км и страны

Африки с населением менее 5 000 тыс. человек, упорядоченные по названию страны.

2. Вывести список стран с определенной площадью, расположенных на определенном континенте.

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

4. Заменить название страны «США» на «USA». 5. Удалить из базы данных сведения о странах с площадью менее 100

тыс. кв. км. База данных «СТРАХОВАЯ КОМПАНИЯ». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: клиенты, родившиеся ранее 11.11.81; клиенты со страховой суммой от 100 до 200 тыс. руб.; клиенты, родившиеся позднее заданной даты и со страховой

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

2. Вывести список выплат по страховкам, дата происшествия которых находится в заданном диапазоне.

3. Найти минимальный процент по страховке и максимальную страховую сумму.

4. Заменить в поле Место работы название фирмы «Глобус» на «Сфера».

40

5. Удалить из базы данных сведения о клиентах, страховая сумма которых не превышает 100 рублей.

База данных «БИБЛИОТЕКА». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: книги Пушкина и Грибоедова; книги, тираж которых не превышает заданного числа; книги, выпущенные в 1993 году или в 1999 году; книги, количество экземпляров которых в библиотеке менее

заданного числа. 2. Вывести список читателей, бравших книги определенного автора

или с определенным названием. 3. Найти самую старую книгу Лермонтова. 4. Заменить название книги «Му-Му» на «МУ-МУ». 5. Удалить из базы данных сведения о книгах, имеющихся в

библиотеке в единственном экземпляре. База данных «ПОСТАВКИ ТОВАРОВ». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: товары стоимостью от 100 до 500 рублей; товары, произведенные в России или Польше; товары, заказанные любой страной, кроме Украины, объем заказа

которых более 1000 шт.; товары, заказы на которые были произведены в заданный период.

2. Вычислить сумму заказа и вывести список заказчиков, заказавших определенный товар на определенную сумму.

3. Найти товары, заказанные определенной фирмой в текущем году. 4. Заменить название фирмы «Титан» на «Атлант». 5. Удалить из базы данных сведения о товарах, произведенных в

Китае. База данных «ТЕЛЕВИДЕНИЕ». 1. Создать запросы к базе данных, с помощью которых будут

выбраны: программы, выходящие в эфир после 17:00; программы длительностью от 30 до 60 минут; программы, спонсором которых является определенная фирма; программы, выходящие в эфир по средам или по воскресеньям до

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

41

3. Найти программы, выходящие в определенный интервал времени, ведущими которых являются люди с определенной фамилией.

4. Заменить название программы «О, счастливчик!» на «Кто хочет стать миллионером?».

5. Удалить из базы данных сведения о программах, идущих в ночное время.

Формы

Формы являются основным средством организации интерфейса

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

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

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

представление одних и тех же данных (например, в виде колонок или таблицы).

Цели создания формы

1. Ввод данных. 2. Вывод и редактирование данных. 3. Форма обеспечивает вывод на экран данных в выбранном вами виде.

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

4. Управление ходом выполнения приложения. 5. Чтобы автоматизировать вывод определенных данных или

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

6. Вывод сообщений. Формы могут предоставлять вспомогательную информацию о работе

приложения.

Пример Можно выводить на экран предупреждение или сообщение об ошибке.

42

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

информацию, содержащуюся в форме.

Создание формы с помощью Автоформы

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

1. В окне базы данных выберите вкладку Таблицы или Запросы. 2. Выберите таблицу или запрос, на основе которых необходимо

создать форму, или откройте их в любом режиме. 3. Нажмите кнопку раскрытия списка рядом с кнопкой Новый объект

на панели инструментов и выберите элемент Автоформа.

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

1. В окне базы данных выберите вкладку Формы. 2. Нажмите кнопку Создать. 3. В диалоговом окне «Новая форма» выберите нужного мастера.

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

на основе которых будет создана форма. 5. Нажмите кнопку OK. 6. Если на шаге 3 были выбраны Мастер форм, Диаграмма или

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

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

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

1. В окне базы данных выберите вкладку Формы. 2. Нажмите кнопку Создать. 3. В диалоговом окне «Новая форма» выберите пункт Конструктор. 4. Выберите имя таблицы или запроса, содержащих данные, на основе

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

5. Нажмите кнопку OK.

43

6. Добавьте на форму нужные поля и элементы управления. 7. Сохраните форму с помощью кнопки Сохранить на панели

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

нужно нажать кнопку Список полей на панели инструментов или выполнить команду Список полей меню Вид. Затем с помощью мыши перенести нужные поля из списка полей на форму.

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

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

Основные элементы (разделы) формы

Основными элементами формы являются (рис. 12): заголовок формы; область данных; примечание формы.

Рис. 12. Разделы формы

В заголовке формы и в примечании формы выводится информация или элементы управления, которые не будут меняться от записи к записи. Чтобы добавить или убрать заголовок и примечание формы, выполните команду Заголовок/примечание формы меню Вид.

Основная информация в форме размещается в области данных. В этот раздел помещают поля исходной таблицы или запроса из списка полей.

44

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

Виды форм

Существует четыре вида форм: многостраничные, ленточные, подчиненные и монопольные.

Многостраничные формы

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

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

Рис. 13. Многостраничная форма

Ленточные формы

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

Подчиненные формы

Подчиненной называется форма, размещенная на другой форме

(внедренная в другую форму). Например, на форму «Студенты»,

45

содержащую информацию о студентах, можно внедрить форму с информацией об итогах сессии (рис. 15).

Рис. 14. Ленточная форма

Рис. 15. Подчиненная форма

Монопольные формы Пока открыта эта форма, невозможно активизировать никакое другое

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

Общие сведения об элементах управления

Все сведения в форме или отчете содержатся в элементах управления.

Элементы управления – это объекты формы или отчета, которые служат

46

для вывода данных на экран, выполнения макрокоманд или оформления формы или отчета.

Пример Поле можно использовать для вывода данных на экран в форме или

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

Типы элементов управления

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

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

Основные элементы управления

Чтобы добавить на форму какой-либо элемент управления, нужно вывести на экран панель элементов управления (рис. 16) с помощью команды Панель элементов управления меню Вид или с помощью кнопки Панель элементов управления на панели инструментов.

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

Рис. 16. Панель элементов управления

47

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

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

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

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

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

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

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

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

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

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

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

48

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

Чтобы кнопка выполняла какое-либо действие, следует создать макрос или процедуру обработки события и связать их со свойством кнопки Нажатие кнопки (OnClick).

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

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

Элемент управления «Рисунок» используется для размещения на форме или в отчете рисунков.

Создание элементов управления

Создание свободного элемента управления

1. Откройте форму в режиме конструктора формы. 2. На панели элементов выберите инструмент создания элемента

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

левый угол создаваемого элемента управления. Если нажать и отпустить кнопку мыши, Microsoft Access создает

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

Создание присоединенного элемента управления

1. Откройте форму в режиме конструктора формы. 2. Откройте список полей нажатием кнопки Список полей на панели

инструментов. 3. В списке полей выделите одно или несколько полей. 4. Перетащите выбранное поле (или поля) из списка полей в форму.

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

49

Создание вычисляемого элемента управления

1. Откройте форму в режиме конструктора формы. 2. Выберите на панели элементов инструмент для создания элемента

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

3. В форме выберите место, в которое следует поместить элемент управления.

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

управления. Если элемент управления не является полем или если требуется

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

Примечания: В вычисляемом элементе управления перед каждым выражением

следует помещать знак равенства (=). Если требуется больше места для ввода выражения в ячейку

свойства Данные (ControlSource), нажмите клавиши [Shift]+[F2] для открытия окна «Область ввода».

Общие сведения об окне свойств

В Microsoft Access свойства используются для определения

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

50

Выбор элемента управления

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

Рис. 17. Выделенный элемент управления

Задание 4. Создание форм

1. Создать форму с помощью мастера форм на основе одной из таблиц базы данных. Добавить в нее все поля таблицы. Вид формы – в один столбец. В заголовке формы создать элемент управления «Надпись», в области данных поместить элемент управления «Рисунок», в примечании формы создать два вычисляемых поля, в одном из них создать выражение, вычисляющее текущую дату, в другом – выражение, вычисляющее какое-либо итоговое значение. Привести форму в соответствие с образцом (рис. 18).

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

3. Создать с помощью конструктора форму по образцу (рис. 19). В заголовке формы создать элемент управления «Надпись», в области данных поместить элемент управления «Набор вкладок» и создать кнопки для открытия форм, созданных в п. 2 (на одной вкладке – кнопки для форм, созданных на основе таблиц, на второй – кнопки для форм, созданных на основе запросов). В примечании формы создать кнопку «Выход» для закрытия формы.

Маркер перемещения Маркеры изменения размеров

51

Рис. 18. Создание формы

Рис. 19. Кнопочная форма

Макросы

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

Итого:

52

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

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

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

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

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

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

1. В окне базы данных выбрать вкладку Макросы и нажать кнопку

Создать. 2. В окне макроса ввести макрокоманды и определить их аргументы. 3. Чтобы сохранить макрос, нажать кнопку Сохранить на панели

инструментов. 4. Чтобы запустить макрос, нажать кнопку Запуск на панели

инструментов. После того, как вы выполните пункт 1, на экране появится диалоговое

окно «Макрос» (рис. 20). Окно макроса делится на две части: верхнюю и нижнюю. В верхней

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

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

53

Пример Рассмотрим пример создания макроса, который должен выполнять

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

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

Рис. 20. Окно макроса

Таблица 4 Пример макроса

Макрокоманда Аргументы

Сообщение Сообщение: "Привет!" Сигнал: Да Тип: Информационное

ОткрытьФорму Имя формы: Преподаватель Режим: Форма Режим окна: Обычное

НаЗапись Тип объекта: Форма Имя объекта: Преподаватель Запись: Конкретная Смещение: 3

Сигнал –

54

Создание макроса, привязанного к кнопке на форме 1. Создать форму, поместить на нее элемент управления «Кнопка». 2. Щелкнуть правой кнопкой мыши на кнопке и выбрать команду

Свойства. 3. В окне свойств перейти на вкладку События и установить курсор в

строке свойства «Нажатие кнопки». 4. Нажать на появившуюся кнопку с многоточием, выбрать команду

Макросы и нажать кнопку ОК. 5. В появившемся окне макроса ввести соответствующие

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

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

на форме, нужно в п. 4. нажать на кнопку со стрелкой и в раскрывающемся списке выбрать имя нужного макроса.

Последовательность макрокоманд, группа макросов

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

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

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

1. В окне базы данных выберите вкладку Макросы. 2. Нажмите кнопку Создать. 3. Нажмите кнопку Имена макросов на панели инструментов, если

она еще не нажата. 4. Введите в ячейку столбца Имя макроса имя первого макроса,

входящего в группу макросов. 5. Введите макрокоманды, выполняемые в первом макросе.

55

6. Повторите шаги 4 и 5 для всех остальных макросов, входящих в группу.

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

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

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

Рис. 21. Группа макросов Пример Создали группу макросов, которую назвали «Макрос-группа». Группа

макросов включает в себя два макроса: «Преподаватель» и «Факультет» (см. рис. 21). Создали форму, в которой разместили две командные кнопки: «Преподаватели» и «Факультеты».

В окне свойств (кнопка Свойства на панели инструментов) на вкладке События для кнопки «Преподаватели» свойство Нажатие кнопки изменили следующим образом: в раскрывающемся списке выбрали команду Макрос-группа.Преподаватель. Для кнопки «Факультеты» аналогично выбрали команду Макрос-группа.Факультет.

56

В результате при работе с формой щелчок по кнопке «Преподаватели» запускает макрос «Преподаватель», а щелчок по кнопке «Факультеты» запускает макрос «Факультет».

Условные макрокоманды

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

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

Если условие истинно, то выполняются макрокоманда, записанная в этой строке и в каждой следующей строке, содержащей в столбце Условие троеточие (…). Если условие ложно, то эти действия игнорируются и выполняется следующая за ними макрокоманда. Так, в примере (рис. 22) при истинном условии будут выполняться макрокоманды: «ОткрытьТаблицу», «ПрименитьФильтр», «Сообщение», а затем выполнится команда «Закрыть». При ложном условии сразу выполняется команда «Закрыть».

Рис. 22. Создание макроса с условием

Пример Создать на форме кнопку, при нажатии на которую на экране должна

появиться таблица «Студенты», в которой отображаются только записи о студентах, поступивших в 1998 году.

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

57

Задание 5. Создание макросов

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

Отчеты

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

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

Типы отчетов

1. Ленточные. Для каждого поля таблицы выделяется отдельный столбец, а значения

всех полей каждой записи выводятся по строкам. Ленточные отчеты похожи на таблицы (рис. 23).

№ зачетки Фамилия Имя Отчество Город Адрес см 99-01 Иванов Иван Иванович Омск Ленина 5-7 см 99-12 Петров Семен Петрович Томск Мира 45-79 см 00-13 Сидоров Игорь Иванович Киев Мира 56-98

Рис. 23. Пример ленточного отчета

2. Группы/итоги (табличные). В таком отчете данные отображаются построчно, при чем данные

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

3. Колоночные (отчет в одну колонку). Автоматически создается при нажатии кнопки Автоотчет. В этих

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

58

ввода и редактирования. Колоночные отчеты используются редко, т.к. занимают много места (рис. 25).

Факультет ТТМ 21 см

№ зачетки Фамилия Имя Отчество Дата рождения см 99-01 Иванов Иван Иванович 11.09.84 см 99-12 Петров Семен Петрович 23.06.84 см 00-13 Сидоров Игорь Иванович 30.11.84 Итого: 3

41 см № зачетки Фамилия Имя Отчество Дата рождения см 98-12 Петров Семен Ильич 18.04.82 см 98-01 Иванов Иван Николаевич 14.09.82 Итого: 2 Итого по факультету: 5

Рис. 24. Пример итогового отчета

Студенты № зачетки см 99-01 Фамилия Иванов Имя Иван Отчество Петрович Дата рождения

11.09.84

№ зачетки см 99-23 Фамилия Петров Имя Семен Отчество Петрович Дата рождения

23.07.84

Рис. 25. Пример колоночного отчета

4. Многоколоночные. Данные выводятся в несколько колонок. То, что не помещается в

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

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

59

Пример

Иванов Иван Пр. Мира, 45-65 Омск 644045 Россия

Петров Сергей Ленина, 11-66 Омск 644025 Россия

… … …

6. Несвязанные отчеты. В них создаются подчиненные отчеты, основанные на несвязанных

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

Разница между формами и отчетами

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

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

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

формы этого делать не позволяют. 4. Отчеты не обеспечивают просмотра в режиме таблицы. Возможен

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

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

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

Автоматическое создание отчета

1. В окне базы данных на соответствующей вкладке выделить имя

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

объект. 3. В раскрывшемся списке выбрать команду Автоотчет.

60

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

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

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

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

Создать. На экране появится диалоговое окно «Новый отчет». 2. В раскрывающемся списке диалогового окна «Новый отчет»

выделить нужную таблицу. 3. В списке в правом верхнем углу диалогового окна выделить строку

Мастер отчетов и нажать кнопку ОК. На экране появится диалоговое окно «Создание отчетов».

4. Перенести поля таблицы из списка Доступные поля в список Выбранные поля с помощью кнопки “>” или двойным щелчком мыши. Примечание. Поля записываются в список Выбранные поля в той последовательности, в какой вы их выбирали из списка Доступные поля. Для изменения порядка полей используйте кнопку “<”.

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

6. Нажать кнопку Далее. 7. Выбрать тип представления данных в отчете (способ группировки

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

8. Нажать кнопку Далее. 9. Выделить в списке Добавить уровни группировки? поле, по которому

необходимо группировать записи, и нажать кнопку “>” (рис. 27). 10. Если необходимо выбрать свой способ группировки, то нажмите

кнопку Группировка. Появится диалоговое окно «Интервалы группировки». Задайте интервалы группировки полей (рис. 28) и нажмите кнопку ОК.

11. Нажать кнопку Далее. 12. Выбрать в первом раскрывающемся списке окна мастера поле, по

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

61

Рис. 26. Группировка данных

Рис. 27. Добавление уровней группировки

13. Для вывода диалогового окна «Итоги» нажать соответствующую кнопку и выбрать нужную функцию: Sum, Avg, Min, Max (рис. 29).

62

Рис. 28. Задание интервалов группировки полей

Рис. 29. Вычисление итоговых значений

14. Нажать кнопку Далее. 15. Выбрать вид макета отчета (ступенчатый, блок, структура1,…). 16. В группе Ориентация выбрать ориентацию бумаги (книжную или

альбомную). 17. Нажать кнопку Далее. 18. Выбрать один из предложенных стилей отчета. 19. Нажать кнопку Далее. 20. Ввести название отчета и нажать кнопку Готово.

Примечания: К п. 10. Для числовых полей можно задавать группировку по

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

63

К п. 13. С помощью данного окна можно задать параметры для столбца отчета, в котором нужно вывести итоговую информацию. Мастер отчета перечислит все числовые поля отчета, не являющиеся счетчиками, и предложит установить для указанного столбца флажки Sum, Avg, Min, Max. В зависимости от установленных флажков мастер отчетов добавит итоговые поля в отчет. Группа Показать позволяет выбрать, следует ли в отчете указывать только итоги или необходимо выдавать полный отчет, добавляя итоговые поля в конце каждой группы и в конце отчета.

В результате этой работы получим отчет, который можно распечатать

или просмотреть в режиме предварительного просмотра. Для предварительного просмотра отчета необходимо выполнить команду Файл – Предварительный просмотр или нажать кнопку Предварительный просмотр на панели инструментов.

Разработка собственных отчетов

Если отчеты, создаваемые по умолчанию (Автоотчет) или с помощью

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

1. В окне базы данных выбрать вкладку Отчеты и нажать кнопку

Создать. 2. Выбрать в списке пункт Конструктор. 3. Из раскрывающегося списка выбрать имя базовой таблицы (или

запроса), данные из которой должны использоваться в отчете. 4. Нажать кнопку ОК. В окне конструктора появится пустой отчет. 5. Поместить в отчет поля, надписи, рисунки и другие элементы

управления. 6. Добавить нужные разделы для установки сортировки или

группирования внутри отчета. 7. Выполнить команду Сохранить в меню Файл для сохранения

созданного отчета. Добавление в отчет полей исходной таблицы и элементов управления

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

64

Макет отчета

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

Рис. 30. Макет отчета

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

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

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

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

65

отчет. Добавить поля в отчет можно с помощью команды Список полей меню Вид.

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

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

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

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

Создание в отчете вычисляемых полей

Как и в формах, в отчетах можно создавать вычисляемые элементы

управления (см. выше). В вычисляемых элементах управления перед каждым выражением необходимо ставить знак равенства (=).

Пример Пусть необходимо создать с помощью конструктора отчет об

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

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

=Count([№ зачетки]). Аналогичное вычисляемое поле создать в примечании отчета. В

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

=Page.

66

Рис. 31. Вычисления в отчете

Задание 6. Создание отчетов

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

2. Создать отчет с помощью конструктора по образцу (рис. 32). В колонтитулах и примечании отчета создать вычисляемые поля.

Рис. 32. Структура отчета

67

Библиографический список

1. Базы данных: Учеб. для вузов / Ф.Д. Хомоненко, В.М. Цыганков, М.Г. Мальцев. – СПб.: Корона принт, 2000.

2. Джонс Э. Библия пользователя Microsoft Office Professional для Windows 95 / Э. Джонс, Д. Саттон. – Киев: Диалектика, 1996.

3. Базы данных: Методические указания для выполнения индивидуальных заданий. Сост. С.В. Зыкин. – Омск: ОмГУ, 1999.

4. Першиков В.И., Савинков В. М. Толковый словарь по информатике. – 2-е изд., доп. – М.: Финансы и статистика, 1995.

5. Слободин В.Я. Построение выражений и вычисления в Microsoft Access6: Учеб. пособие. – Омск: Изд-во СибАДИ, 2000.

6. Шафрин Ю. Основы компьютерной технологии. – М.: АБФ, 1996.

68

Оглавление

ГЛАВА I.ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОЕКТИРОВАНИЯ БАЗ ДАННЫХ..............3 Понятие базы данных...........................................................................................................3 Информационная модель данных........................................................................................3 Первичный ключ ..................................................................................................................5 Внешний ключ......................................................................................................................6 Отношения между таблицами..............................................................................................6 Проектирование нормализованных баз данных................................................................10 Пример проектирования нормализованной базы данных.................................................12 Задание 1. Проектирование базы данных..........................................................................14 ГЛАВА II. СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MICROSOFT ACCESS ...16 Создание базы данных .......................................................................................................16 Объекты базы данных Access ............................................................................................18 Создание и ведение таблиц базы данных..........................................................................19 Ключевые поля ...................................................................................................................21 Определение связей между таблицами..............................................................................23 Задание 2. Создание базы данных .....................................................................................24 Создание запросов к базе данных......................................................................................24

Запросы на выборку .......................................................................................................24 Окно конструктора запроса............................................................................................25 Ввод условий отбора ......................................................................................................25 Операторы сравнения.....................................................................................................28 Запросы с параметром...................................................................................................29 Вычисления в запросе ....................................................................................................30 Встроенные функции Microsoft Access..........................................................................31 Итоговые (групповые) операции ...................................................................................34 Запросы на обновление записей.....................................................................................34 Запросы на удаление записей.........................................................................................35

Задание 3. Создание запросов............................................................................................37 Формы.................................................................................................................................41 Общие сведения об элементах управления .......................................................................45 Задание 4. Создание форм..................................................................................................50 Макросы..............................................................................................................................51 Задание 5. Создание макросов ...........................................................................................57 Отчеты ................................................................................................................................57 Задание 6. Создание отчетов..............................................................................................66 Библиографический список ...............................................................................................67