Microsoft Access является настольной СУБД реляционного типа

advertisement
Комплекс лабораторных работ в среде ACCESS
Microsoft Access является настольной СУБД реляционного типа, которая позволяет
выполнять
 определение данных (создание таблиц, индексов, связей между таблицами и т.п.),
 обработку данных (добавление записей в таблицу, удаление записей, обновления
значений полей записей, поиск записей, удовлетворяющих условию и т.п.),
 управление данными (поддержка многопользовательского режима, обеспечение
целостности данных, защита от несанкционированного доступа и т.п.).
Access имеет простой графический интерфейс и позволяет не только создавать базу
данных, но и разрабатывать приложения.
Обозначения в тексте:
Название
–
заголовок окна или наименование вкладки;
Пункт меню –
название пункта меню;
Кнопка
–
надпись на кнопке;
Ссылка
–
ссылка в окне;
Таблица
–
название объекта базы данных или самой базы данных.
База данных
База данных состоит из объектов, которые можно разделить на следующие группы:
таблицы, запросы, формы, отчеты, страницы, макросы и модули, и содержится в одном файле,
имеющем расширение "mdb".
Чтобы создать новую базу данных выберите в меню пункт Файл, а затем пункт Создать.
В появившемся окне Создание файла выберите ссылку Новая база данных. В появившемся окне
выберите папку, в которой собираетесь хранить базу данных, и введите название файла. После
нажатия кнопки Создать откроется окно базы данных.
Окно базы данных предоставляет доступ ко всем объектам базы данных и позволяет
выбрать режим работы с объектом (создание, изменение, просмотр, запуск и т.д.).
Это окно появляется, когда Вы создаете новую базу данных или открываете уже
существующую базу данных. Для открытия базы данных необходимо выбрать в меню пункт
Файл, а затем пункт Открыть базу данных. В окне Открытие файла базы данных откройте
папку, в которой хранится файл, выделите файл и нажмите кнопку Открыть. Одновременно
может быть открыта только одна база данных.
Задание 1.
Создайте в Вашей рабочей папке базу данных с именем Univer.mdb.
В окне базы данных объекты распределены по вкладкам и изображаются значками. Для
работы с объектом определенного типа необходимо перейти на соответствующую вкладку и
выделить требуемый объект. Для создания объекта служит кнопка Создать в окне базы данных,
которая открывает окно Конструктора. После закрытия окна предлагается сохранить новый
объект и вводится его имя. Модификация объекта возможна в режиме Конструктора, для
перехода в этот режим предназначена кнопка Конструктор в окне базы данных. После закрытия
окна конструктора предлагается сохранить внесенные изменения или аннулировать их, оставив
объект таким, какой он был до перехода в режим Конструктора. Измененный объект можно
сохранить под другим именем, выбрав в меню пункт Файл, Сохранить как. Работа с объектом
начинается после нажатия кнопки Открыть (для отчета соответствующая кнопка носит название
Просмотр, а для макроса – Запуск) в окне базы данных.
Над каждым объектом можно выполнять операции удаления, копирования, вставки,
изменения имени используя соответствующие пункты меню Правка (Удалить, Вырезать,
Копировать, Вставить, Переименовать).
Создание таблицы
Таблица – основной объект базы данных.
Для того чтобы создать таблицу необходимо в окне базы данных переключиться на
вкладку Таблицы и нажать кнопку Создать, появится окно Конструктора таблицы.
Верхняя часть окна содержит таблицу, состоящую из трех столбцов: Имя поля, Тип
данных, Описание. Она предназначена для определения полей (атрибутов) реляционной
таблицы. Для каждого поля необходимо заполнить одну строку таблицы, т.е. ввести название
поля (не более 64 символов), выбрать из раскрывающегося списка тип данных, которые будут
1
находиться в этом поле, (возможные типы данных приведены в таблице далее по тексту) и
ввести описание поля (рекомендуется ввести описание, так как оно выводится в строке
состояния приложения и может служить справкой для пользователей приложения).
В таблице перечислены типы данных, определенные в Access
Тип
Текстовый
Размер
до 255 символов
Поле МЕМО
до 65 535 символов
Числовой
1, 2, 4, 8 или 16 байт
Дата/Время
8 байт
Денежный
Счетчик
4 байта
Логический
Поле
OLE
объекта
Ограничивается
дисковым
пространством.
Описание
Символьные или числовые данные, не требующие
вычислений. В свойстве Размер поля задается
максимальное количество символов, которые могут
быть введены в данное поле.
Предназначено для ввода текстовой информации,
по объему превышающей 255 символов.
Используется для хранения числовых данных,
используемых в математических расчетах. Имеет
много подтипов, которые задаются в свойстве
Размер поля.
Используется для представления даты и времени.
Позволяет вводить даты с 100 по 9999 год.
Предназначен для хранения данных, точность
представления которых колеблется от 1 до 4 знаков
после запятой. Целая часть может содержать до 15
десятичных знаков.
Автоинкрементное поле, уникальный номер,
создаваемый
для
каждой
новой
записи
автоматически. Значения поля обновлять нельзя.
Предназначен для хранения двух значений,
интерпретируемых как "Да / Нет". Для
представления значения "Да" используется 1, "Нет"
– 0.
Содержит ссылку на OLE–объект
В нижней части окна Конструктора таблицы находятся две вкладки, содержащие
свойства каждого поля таблицы: вкладка Общие содержит общие свойства поля, вкладка
Подстановка" содержит параметры подстановки. Для того чтобы просмотреть или изменить
свойства конкретного поля таблицы, необходимо выделить нужное поле в таблице,
расположенной в верхней части окна Конструктора таблицы. Состав свойств определяется
типом поля.
В таблице перечислены свойства полей таблицы Access
Свойство
Подпись
Обязательное поле
Формат поля
Маска ввода
Размер поля
Число десятичных знаков
Индексированное поле
Значение по умолчанию
Условие на значение
Сообщение об ошибке
Пустые строки
Описание
Название столбца таблицы при просмотре ее содержимого.
Определяет, является ли ввод данных в это поле
обязательным.
Задает формат ввода данных.
Задает маску ввода, позволяющую автоматизировать
проверку вводимых символов.
Для числовых полей определяет размер и тип чисел (длинное
целое, целое, байт, с плавающей точкой, десятичное и др.)
Определяет число десятичных знаков после запятой.
Определяет, является ли поле индексированным.
Указывает значение, автоматически вставляемое в поле для
каждой новой записи, если оно не введено пользователем.
Определяет ограничения на вводимые в это поле данные.
Содержит текст сообщения, который будет выдаваться
пользователю, если при вводе данных не соблюдается
условие, указанное в свойстве "Условие на значение".
Для текстового типа определяет, допустимо ли вводить в
данное поле пустые строки.
2
Сжатие Юникод
Для текстового типа определяет, используется ли кодировка
UNICODE для данного поля.
Для типа счетчик указывает способ формирования
следующего значения счетчика.
Новые значения
Таблица обязательно должна содержать ключ, состоящий из одного поля или
комбинации полей. Значение ключа, т.е. комбинация значений полей в него входящих,
однозначно определяет каждую запись в таблице. Для создания ключа необходимо выделить
строки, содержащие описание полей, которые будут в ключе, и выбрать в меню пункт Правка,
Ключевое поле. Слева от названий этих полей появится пиктограмма с изображением ключа.
На рисунке представлено окно Конструктора для таблицы Student
После закрытия окна Конструктора таблицы появляется запрос о сохранении структуры
таблицы. Нажав кнопку Да, Вы сможете дать имя новой таблице. После нажатия кнопки Нет
созданная структура удаляется.
Задание 2.
Создайте таблицы следующей структуры:
Таблица Student
Имя поля
NStudent
Ключевое
поле
CName
Тип поля
Числовой
Значения свойств
Размер поля = Длинное целое
Подпись = Номер
Описание
Номер зачетной книжки
студента.
Текстовый
Фамилия И.О. студента
NDepartment
Числовой
NIQ
Числовой
Размер поля = 25
Подпись = ФИО
Обязательное поле = Да
Размер поля = Длинное целое
Подпись = Факультет
Размер поля = Длинное целое
Подпись = Интеллект
NTeacher
Числовой
Размер поля = Длинное целое
Подпись = Руководитель
OPhoto
Поле объекта
OLE
Подпись = Фотография
Код факультета, на котором
учится студент
Показатель интеллекта
студента, вычисленный по
специальной методике.
Код преподавателя,
руководящего научной
работой студента.
Графический файл с
фотографией студента
3
Таблица Department
Имя поля
NDepartment
Ключевое
поле
CName
Тип поля
Числовой
Значения свойств
Размер поля = Длинное целое
Подпись = Код
Описание
Уникальный код факультета.
Текстовый
Размер поля = 25
Подпись = Название
Наименование факультета
Таблица Post
Имя поля
NPost
Ключевое
поле
CName
Тип поля
Числовой
Значения свойств
Размер поля = Длинное целое
Подпись = Код
Описание
Уникальный код должности.
Текстовый
Размер поля = 25
Подпись = Наименование
Наименование должности
Таблица Teacher
Имя поля
NTeacher
Ключевое
поле
CName
Тип поля
Числовой
Значения свойств
Размер поля = Длинное целое
Подпись = Код
Описание
Уникальный код
преподавателя.
Текстовый
ФИО преподавателя.
NDepartment
Числовой
NPost
Числовой
Размер поля = 25
Подпись = ФИО
Размер поля = Длинное целое
Подпись = Факультет
Размер поля = Длинное целое
Подпись = Должность
Код факультета, на котором
работает преподаватель.
Код должности, занимаемой
преподавателем.
Таблица Subject
Имя поля
NSubject
Ключевое
поле
CName
Тип поля
Числовой
Значения свойств
Размер поля = Длинное целое
Подпись = Код
Описание
Уникальный код предмета.
Текстовый
Наименование предмета.
NHour
Числовой
NTeacher
Числовой
Размер поля = 25
Подпись = Наименование
Размер поля = Целое
Подпись = Объем
Размер поля = Длинное целое
Подпись = Преподаватель
Объем занятий по предмету
(часов).
Код преподавателя, ведущего
занятия.
Изменение структуры таблицы
Для того чтобы внести изменения в структуру таблицы, например, переименовать поле,
добавить новое поле, изменить длину поля, необходимо выделить таблицу в окне базы данных и
нажать кнопку Конструктор. После этого откроется окно конструктора таблицы, в котором
будут представлены все ранее выполненные настройки и можно внести изменение в любое
свойство поля, просто изменив его значение.
Для добавления и удаления полей необходимо воспользоваться пунктом меню Правка,
где выбрать Добавить строки или Удалить строки в зависимости от требуемых действий.
Изменение ключевых полей выполняется просто установкой новых ключевых полей.
Задание 3. Модифицируйте структуру таблицы Student, добавив в нее поле, указанное
ниже.
Имя поля
Remark
Тип поля
поле MEMO
Значения свойств
Подпись = Примечания
Описание
Примечания.
4
Индексы
Для ускорения поиска и сортировки данных используются индексы. Индекс
представляет собой упорядоченный список значений поля или нескольких полей со ссылками на
те записи, в которых хранятся эти значения. Индекс, построенный по одному полю, называется
простым, индекс, построенный по нескольким полям, называется составным.
Таблица может иметь несколько индексов, каждый индекс обладает уникальным
именем. Для ключевого поля индекс создается автоматически и ему присваивается имя
PrimaryKey.
Чтобы создать индекс, необходимо открыть окно Конструктора таблицы, выделив
таблицу и щелкнув по кнопке Конструктор.
Для создания индекса необходимо выбрать в меню пункт Вид, Индексы. Открывшееся
окно Индексы содержит таблицу, в которой представлены все индексы, созданные для таблицы.
Таблица состоит из трех столбцов. Первый столбец содержит имя индекса, второй – название
поля, по которому построен индекс, третий – порядок сортировки. Каждая строка таблицы
описывает один индекс. Если вы определили ключевое поле, то таблица будет содержать строку
с именем индекса PrimaryKey.
Для создания нового индекса в первой пустой строке таблицы в первом столбце введите
название индекса, во втором столбце из раскрывающегося списка выберите поле, по которому,
будет проведено индексирование, и в третьем столбце из раскрывающегося списка выберите
порядок сортировки.
Для создания составного индекса в первой пустой строке таблицы в первом столбце
введите название индекса, во втором столбце выберите из списка первое поле, входящее в
составной индекс, в третьем столбце выберите порядок сортировки. В следующей строке
оставьте незаполненным первый столбец, а во втором столбце выберите из списка второе поле
составного индекса и настройте для него порядок сортировки. То же самое повторите для
остальных полей, входящих в составной индекс: не заполняйте первый столбец, выберите из
списка имя поля и настройте порядок сортировки.
После заполнения таблицы можно закрыть окно Индексы.
Простой индекс можно создать, не открывая окно Индексы. Для этого в окне
Конструктора таблицы необходимо выбрать поле, которое требуется проиндексировать и
установить в свойстве "Индексированное поле" значение "Да (Допускаются совпадения)" или
"Да (Совпадения не допускаются)".
Задание 4.
Создайте простой индекс для таблицы Student по полю CName.
Задание 5.
Создайте составной индекс в таблице Subject по полям CName, NHour.
Связи между таблицами
Таблица может иметь внешние ключи, ссылающиеся на другие таблицы. Внешний
ключ – это поле таблицы, которое может содержать только те значения, которые находятся в
ключевом поле другой таблицы, на которую ссылается внешний ключ. Внешний ключ
связывает две таблицы. Обычно такая связь означает, что каждой записи одной таблицы
(назовем ее родительской таблицей) соответствует ноль, одна или более записей второй
таблицы (назовем ее дочерней таблицей). Тогда, во второй таблице (дочерней) определяется
внешний ключ, ссылающийся на первую таблицу (родительскую).
Связи между таблицами удобно представлять графически. В Access для этого
используется схема данных. Чтобы открыть схему данных, необходимо выбрать в меню пункт
Сервис, Схема данных. Вместе с окном схемы данных открывается окно Добавление таблицы, в
котором нужно выбрать все таблицы и нажать кнопку Добавить, а затем кнопку Закрыть.
Каждая таблица на схеме изображается в виде небольшого окна, заголовок которого
содержит название таблицы, а внутри него перечислены все поля таблицы, ключевые поля
выделены жирным шрифтом.
Чтобы создать связь между двумя таблицами, необходимо перетащить с помощью
мыши название поля, являющегося внешним ключом, из дочерней таблицы на название
ключевого поля родительской таблицы. В открывшемся окне Связи можно выполнить
необходимые настройки: определить поле внешнего ключа в дочерней таблице и поле, на
которое ссылается внешний ключ, в родительской таблице, включить режим обеспечения
целостности данных, позволяющий выполнять операции обновления и удаления зависимых
5
записей в дочерней таблице при изменении значения ключевого поля или удаления записи из
родительской таблицы.
После нажатия кнопки Создать на схеме данных таблицы будут соединены линией.
Если был включен режим обеспечения целостности данных, то над линией появятся символы
бесконечности (около дочерней таблицы) и единицы (около родительской таблицы).
Access находит связи между таблицами автоматически, если названия и типы данных
поля родительской таблицы и поля дочерней таблицы совпадают.
Чтобы изменить связь необходимо выбрать в меню пункт Связи, Изменение связей.
После выполнения этих действий откроется окно Связи.
Окно Связи содержит несколько флажков, которые устанавливают различные режимы
поведения Access при выполнении операций с данными в связанных таблицах.
1. Флажок "Обеспечение целостности данных" включает режим, при котором:
 Невозможно ввести в связанное поле дочерней таблицы значение, отсутствующее в
связанном поле родительской таблицы.
 Не допускается удаление записи из родительской таблицы, если существуют
связанные с ней записи в дочерней таблице.
 Невозможно изменить значение ключевого поля в родительской таблице, если
существуют связанные с ним записи в дочерней таблице.
2. Флажок "Каскадное обновление связанных полей" включает режим автоматического
изменения значений связанных полей дочерней таблицы при изменении значения
ключевого поля родительской таблицы.
3. Флажок "Каскадное удаление связанных записей" включает режим автоматического
удаления связанных записей дочерней таблицы при удалении записи в родительской
таблице.
Чтобы активизировать один или несколько из этих режимов для какой-либо связи,
нужно установить соответствующий флажок в окне Связи для выбранной связи.
Пример
Создадим связь между таблицами Student и Department по полю NDepartment.
Откройте окно Схемы данных и перетащите с помощью мыши поле NDepartment из таблицы
Student на поле NDepartment в таблице Department. В открывшемся окне установите флажок
"Обеспечение целостности данных". Теперь в поле NDepartment таблицы Student невозможно
внести код, отсутствующий в таблице Department. Невозможно удалить строку из таблицы
Department или изменить значение поля NDepartment в этой таблице, если в таблице Student
есть хотя бы одна запись с кодом факультета равным коду факультета удаляемой или
изменяемой записи.
На рисунке представлено окно Схемы данных
со связью между таблицами Student и Department
Для того чтобы после изменения кода факультета в таблице Department автоматически
изменялись соответствующие коды факультета в таблице Student, необходимо установить
флажок Каскадное обновление связанных полей. Для того чтобы после удаления записи из
таблицы Department удалялись все записи с таким же кодом факультета из таблицы Student,
необходимо установить флажок каскадное удаление связанных записей.
6
Задание 6. Установите еще четыре
содержанию этих таблиц.
Задание 7.
связи между таблицами, соответствующие
Установите следующие правила целостности:
а). запрещается удалять информацию о факультете, если на нем учится
хотя бы один студент или работает хотя бы один преподаватель;
б). запрещается удалять информацию о преподавателе, если он читает
хотя бы один предмет;
в). разрешить каскадное изменение во всех дочерних таблицах при
изменении кода преподавателя;
г). при удалении должности разрешить каскадное удаление всех
преподавателей, имеющих эту должность;
д). при добавлении нового студента установить проверку на на наличие
вводимого кода факультета и вводимого кода преподавателя.
Просмотр и редактирование данных в таблице
Для просмотра и редактирования данных в таблице необходимо в окне базы данных
выбрать таблицу и нажать кнопку Открыть. Появится окно с содержимым таблицы. В верхней
части таблицы располагаются имена полей (или подписи, если они были определены для поля),
за которыми ниже следуют строки, в которых находятся данные одной записи таблицы.
Одна запись всегда является текущей, рядом с ней расположен указатель текущей
записи в виде стрелки слева от записи. В нижней части окна находятся кнопки для перемещения
указателя текущей записи по таблице (на первую запись, на предыдущую, на следующую, на
последнюю, на новую запись), рядом находится поле номера текущей записи и общее
количество записей в таблице. Перемещаться по таблице можно также при помощи клавиш
управления курсором клавиатуры.
На рисунке представлено окно просмотра содержимого таблицы Student
Существует три операции с записями: добавление, изменение, удаление.
Чтобы добавить в таблицу новую запись, необходимо выбрать пункт меню Вставка,
Новая запись (или нажать кнопку На новую запись, расположенную у нижней границы окна,
или перейти на последнюю пустую строку таблицы, отмеченную символом звездочка) и ввести
данные в поля новой записи.
Чтобы изменить существующую запись, необходимо переместить курсор в поле,
данные в котором требуется изменить, ввести новые данные и нажать клавишу Tab для перехода
на следующее поле. Изменения будут записаны только когда указатель на текущую запись
будет перемещен на любую другую запись. До тех пор пока работа выполняется над одной
записью, все изменения можно отменить, нажав клавишу Esc. Во время редактирования записи
указатель на текущую запись имеет вид карандаша. Когда изменения будут зафиксированы
указатель снова примет вид стрелки.
При выполнении этих операций отслеживаются установленные ограничения
целостности для связанных таблиц. При изменении значений или вводе новых значений в
связанные поля выполняется проверка на наличие таких значений в родительских таблицах и
при их отсутствии появится сообщение об ошибке, но не ранее чем Вы переместите указатель
7
текущей записи на другую запись. Изменения не будут приняты, пока данные во всех полях не
будут удовлетворять установленным ограничениям.
При изменении данных в записи таблицы, являющейся родительской по отношению к
другим таблицам, могут быть внесены изменения в связанные с ней записи в дочерних таблицах
или наоборот, операция изменения записи не будет выполнена, так как с ней связаны записи в
других таблицах.
Ввод значений в поле, имеющее тип Поле объекта OLE, выполняется по команде меню
Вставка, Объект. В открывшемся окне можно активизировать радиокнопку Создать новый и,
выбрав тип объекта и нажав кнопку ОК, создать объект, или активизировать радиокнопку
Создать из файла и, нажав кнопку Обзор, выбрать файл содержащий объект. После выполнения
этих действий в таблице появится подпись соответствующая типу объекта, например
"Точечный рисунок" для графического файла, или "Лист Microsoft Excel" для листа электронной
таблицы.
Изменение объектов происходит посредством пункта меню Правка, Объект, Изменить
или Открыть, или Преобразовать. При этом открывается окно приложения, которое работает с
объектами этого типа. Если требуется вставить другой объект, то существующий объект нужно
удалить и вставить новый.
Чтобы удалить запись необходимо установить указатель текущей записи на удаляемую
запись и выбрать в меню пункт Правка, Удалить запись. При удалении записи Access
запрашивает подтверждение.
При удалении одной записи в таблице, являющейся родительской по отношению к
другим таблицам, могут быть удалены связанные с ней записи в дочерних таблицах или
наоборот, операция удаления записи не будет выполнена, так как с ней связаны записи в других
таблицах.
Задание 8. Заполните таблицы указанными ниже данными. Заполнение таблиц нужно
выполнять в указанном порядке. Почему?
Содержимое таблицы Department
NDepartment
100
200
300
CName
Математический
Физический
Экономический
Содержимое таблицы Post
NPost
10
20
30
40
50
CName
Преподаватель
Ст. преподаватель
Доцент
Профессор
Зав. кафедрой
Содержимое таблицы Teacher
NTeacher
210
220
230
310
410
420
320
CName
Поляков В.В.
Кузнецов В.А.
Бердино Н.Ю.
Стефанович Г.Б.
Дмитриева Л.Н.
Литвинас А.П.
Порывайло К.М.
NDepartment
100
100
100
200
300
300
200
NPost
30
30
20
30
50
40
10
Содержимое таблицы Subject
NSubject
103
42
111
201
305
CName
Информационные системы
Исследование операций
Практикум на ЭВМ
Физика
Экономическая география
NHour
90
60
30
30
90
NTeacher
210
220
230
310
420
8
302
317
193
218
Бухгалтерский учет
Экономическая информатика
Электротехника
Банковские операции
50
80
60
30
410
210
310
410
Содержимое таблицы Student
NStudent CName
NDepartment
NIQ
NTeacher
3467589
Отличников К.Л.
100
99
210
4678455
Двоечников Н.Е.
300
30
410
5934508
Середняков А.Д.
200
64
310
7459876
Дубинин У.У.
100
41
410
2227778
Мозгов О.Г.
100
100
220
4678466
Хвостов П.П.
300
64
410
5934512
Папуасов М.Ю.
200
58
310
В поле OPhoto вставьте произвольные графические файлы.
В поле Remark введите произвольный текст.
Задание 9. Организуйте одновременный просмотр таблиц Student, Post и Deparment в
разных местах экрана дисплея.
Задание 10. Сделайте копию таблицы Student под именами Student0, используя пункты
меню Правка, Копировать и Правка, Вставить.
Задание 11. В таблице Student0 удалите одну, текущую, строку, а затем одновременно
несколько строк (например, для студентов факультета с кодом 200). Удалите
таблицу.
Задание 12. Для проверки работы установленных ограничений целостности попробуйте
выполнить следующие операции по редактированию таблиц:
а). удалить информацию о математическом факультете из таблицы
Department (невозможно, так как есть студенты, учащиеся на этом
факультете);
б). удалить информацию о преподавателе Кузнецов В.А. из таблицы
Teacher (невозможно, так как этот преподаватель ведет предметы) и
Порывайло К.М. (будет удалена); восстановить информацию о
преподавателе Порывайло К.М.;
в). изменить код преподавателя Кузнецова В.А. на 610 в таблице Teacher
и просмотреть содержимое таблиц Subject и Student, в которых
автоматически изменятся значения столбца NTeacher для предметов,
которые вел преподаватель Кузнецов В.А. и студентов, для которых
он является руководителем; вернуть прежнее значение кода
преподавателя Кузнецова В.А.
г). удалить должность с кодом 10 из таблицы Post и просмотреть
таблицу Teacher, в которой будут автоматически удалены
преподаватели имеющие код должности 10 (преподаватель
Порывайло К.М.); восстановить информацию о преподавателе
Порывайло К.М.
д). удалитьдолжность с кодом 30 из таблицы Post (невозможно, так как
каскадно вместе с этой записью должны быть удалены все
преподаватели, имеющие эту должность, но такие преподаватели
являются руководителями студентов, а в этом случае информация о
них не может быть удалена);
е). добавить информацию о новом студенте в таблицу Student :
NStudent CName
NDepartment
NIQ
NTeacher
354625
Куролесов И.И.
600
62
310
Невозможно, так как нет факультета с кодом 600;
ж). добавить информацию о новом студенте в таблицу Student :
NStudent CName
NDepartment
NIQ
NTeacher
354625
Куролесов И.И.
100
62
780
9
Невозможно, так как нет преподавателя с кодом 780;
з). добавить информацию о новом студенте в таблицу Student :
NStudent CName
NDepartment
NIQ
NTeacher
388688
100
62
310
Невозможно, так как поле CName должно быть заполнено.
Поиск данных
В режиме Таблицы предусмотрены операции поиска данных по образцу. Чтобы найти
требуемые данные, необходимо поместить курсор в поле, в котором будет выполняться поиск
(если поиск выполняется по нескольким полям то, где находится курсор, не имеет значения)
выбрать пункт меню Правка, Найти, ввести образец поиска и настроить условия поиска (Поиск
в:, Совпадение:, Просмотр:, С учетом регистра, С учетом формата полей).
Задание 13. В таблице Student выполните поиск студентов,
а). обучающихся на факультете с кодом 300;
б). фамилии которых заканчиваются на «ов»;
в). фамилии которых начинаются на «Д»;
г). в номере зачетной книжки или в коде факультета, или в уровне
интеллекта, или в коде руководителя присутствует значение «22».
Фильтрация
Для отбора записей во время просмотра или редактирования можно воспользоваться
фильтром. Чтобы создать фильтр необходимо выбрать пункт меню Записи, Фильтр,
Расширенный фильтр.
Окно Фильтра разделено на две области. В верхней области находится окно со списком
полей открытой таблицы. В нижней области находится бланк фильтра. Каждый столбец бланка
фильтра описывает одно поле таблицы, для которого записываются условия отбора записей или
порядок сортировки.
Строка "Поле" предназначена для выбора имени поля таблицы из раскрывающегося
списка. В строке "Сортировка" можно указать порядок сортировки значений данного поля. В
строках "Условия отбора:", "или:" задаются условия отбора записей в виде логических
выражений, например, (>30), (>= «Москва»), (=10).
При задании условия отбора записей можно использовать
1.
операторы сравнения: <, >, <=, >=, =, <>;
2.
логические функции: And, Or, Not, Xor;
3.
арифметические операции: + (сложение), – (вычитание), * (умножение), /
(деление), \ (деление нацело), mod (остаток от деления), ^ (возведение в
степень);
4.
встроенные функции, например, Date() (текущая дата), Cos() (косинус угла) и
др.;
5.
операторы слияния строковых значений – &, например, "Мос" & "ква";
6.
диапазон значений – Between, например, Between 10 and 20;
7.
Is Null – определяет, является ли значение пустым, Is Not Null – не пустым;
8.
список значений – In, например, In("Москва","Саратов","Кострома");
9.
сравнение с шаблоном – Like, например, Like "?а*", означает слова, в которых
вторая буква "а". В шаблоне можно использовать символ "?", который
замещает только один знак, и символ "*", который замещает любое число
знаков.
В выражениях можно использовать имена других объектов базы данных, например,
[Student]![CName] – означает поле CName в таблице Student.
Вводить выражения можно не только вручную, но и с помощью Построителя
выражений, который вызывается нажатием кнопки Построить, расположенной на панели
инструментов Конструктор запросов.
Условия, записанные в одной строке, но в разных столбцах, связываются логической
функцией «и», т.е. должны выполняться одновременно. Для задания условий, связанных
логической функцией «или», необходимо каждое условие записать на отдельной строке.
После заполнения бланка фильтра необходимо выполнить команду меню Фильтр,
Применить фильтр. Закрытие окна Фильтра приводит к его уничтожению. Чтобы отменить
действие фильтра, необходимо выбрать в меню пункт Записи, Удалить фильтр.
10
Задание 14. В таблице Student установите фильтр, позволяющий выделить строки,
содержащие сведения о студентах, обучающихся на факультетах с кодами 100 и
300 и показателем интеллекта не менее 45. Затем отмените фильтрацию.
Задание 15. В таблице Teacher установите фильтр, позволяющий выделить строки,
содержащие сведения о преподавателях, работающих на факультете с кодом 200,
или, имеющих должность с кодом 30, или, имеющих фамилию, начинающуюся на
букву "Л".
Сортировка записей
Когда таблица открывается в режиме Таблицы, то записи упорядочены по возрастанию
значений ключевого поля. Если нужно отсортировать записи по значению другого поля,
необходимо установить курсор на любую строку соответствующего столбца и выбрать пункт
меню Записи, Сортировка, Сортировка по возрастанию/Сортировка по убыванию. Чтобы
вернуться к первоначальному порядку сортировки (по значению ключевого поля), необходимо
выбрать пункт меню Записи, Удалить фильтр. Процесс сортировки значительно ускоряется,
если предварительно по данному полю был построен индекс.
Сортировка по нескольким полям одновременно выполняется через фильтр.
Задание 16. Выполните сортировку данных в таблице Student сначала отдельно по двум
указанным ниже полям, а затем по двум одновременно:
а). по кодам факультетов в порядке возрастания;
б). по показателям интеллекта в порядке убывания.
Запросы
Вторым по значению объектом базы данных является запрос. В Access существует
несколько видов запросов: запросы на выборку данных из таблиц, запросы на изменение данных
в таблицах, позволяющие удалять, обновлять и добавлять записи, запросы на создание таблицы
и другие.
Рассмотрим запросы на выборку данных, соответствующих некоторому условию и их
сортировку. Запросы располагаются на вкладке Запросы окна базы данных. Чтобы создать
новый запрос, необходимо выбрать вкладку Запросы в окне базы данных и щелкнуть в этом
окне по кнопке Создать. Откроется окно Конструктора запроса и вместе с ним окно Добавления
таблицы. В этом окне нужно выбрать таблицы, данные из которых потребуются для выполнения
запроса, и нажать кнопку Добавить. После добавления всех необходимых таблиц можно
закрыть окно Добавление таблицы нажатием кнопки Закрыть.
Окно Конструктора запроса разделено на две области. В верхней области отображена
схема данных, состоящая из добавленных в запрос таблиц (если между таблицами установлены
связи, то они тоже отображены на схеме), а в нижней области окна находится бланк запроса.
Рассмотрим бланк запроса.
Каждый столбец бланка запроса описывает одно поле таблицы или выражение,
являющиеся результирующими полями запроса или входящие в условия отбора записей.
Строка "Поле" предназначена для ввода имени поля таблицы – источника данных
(символ звездочка "*" обозначает сразу все поля одной таблицы) или вычисляемого выражения.
Полю запроса можно дать собственное название, для этого перед именем поля или выражением,
необходимо ввести название поля запроса и двоеточие.
Вторая строка – "Имя таблицы" – предназначена для ввода имени таблицы, которой
принадлежит выбранное поле. Эта строка заполняется автоматически при выборе имени поля в
первой строке бланка запроса. Для выражений имя таблицы заполнять необязательно.
В строке "Сортировка" можно указать порядок сортировки данного поля.
Строка "Вывод на экран" содержит флажок, который указывает на то, будет ли
выводится соответствующее поле запроса на экран при просмотре результатов выполнения
запроса.
В строках "Условия отбора", "или:" задаются условия отбора записей из таблиц в виде
логических выражений, например, (>30), (>="Москва"), (=10).
Если требуется выполнить групповые операции над записями таблицы, то необходимо
нажать кнопку Групповые операции на панели инструментов Конструктор запросов. После
этого в бланке запроса появится строка "Групповая операция". Из раскрывающегося списка
можно выбрать тип операции: Sum, Avg, Count, Min, Max и др.
11
Результат запроса можно просмотреть, не выходя из окна Конструктора запросов,
нажав на панели инструментов Конструктор запросов кнопку Вид и выбрав "Режим таблицы".
Для того чтобы увидеть как будет выглядеть запрос на языке SQL необходимо после нажатия на
кнопку Вид выбрать пункт Режим SQL. В этом режиме можно изменить запрос, составленный с
помощью бланка запроса, или ввести новый запрос. После перехода в режим Конструктора
запрос на языке SQL будет преобразован в структуру бланка запроса.
При закрытии окна Конструктора запроса будет предложено сохранить запрос как
объект базы данных и дать ему имя.
Чтобы выполнить запрос, необходимо выбрать его в окне базы данных и нажать кнопку
Открыть, для изменения запроса необходимо нажать кнопку Конструктор. Удалить запрос
можно выбрав в меню пункт Правка, Удалить.
При задании условия отбора записей можно использовать операторы сравнения: <, >,
<=, >=, =, <>, логические функции: And, Or, Not, Xor, арифметические операции: + (сложение), (вычитание), * (умножение), / (деление), \ (деление нацело), mod (остаток от деления), ^
(возведение в степень), функции, например, Date() (текущая дата), Cos() (косинус угла) и др.,
операторы слияния строковых значений – &, например, "Мос" & "ква", операторы сравнения с
образцом: Between (задает диапазон значений, например, Between 10 and 20), Is (Определяет,
является ли значение пустым, например, Is Null или Is Not Null), In (задает список значений,
например, In("Москва","Саратов","Кострома")), Like (задает сравнение по шаблону, например,
Like "?а*", означает слова, в которых вторая буква а, в шаблоне можно использовать символ "?",
который замещает только один знак, и символ "*", который замещает любое число знаков).
В выражениях можно использовать имена других объектов базы данных, например,
[Student]![CName] – означает поле CName в таблице Student.
Условия, записанные в одной строке, но в разных столбцах, связываются логической
функцией «и», т.е. должны выполняться одновременно. Для задания условий, связанных
логической функцией «или», необходимо каждое условие записать на отдельной строке.
Вводить выражения можно не только вручную, но и с помощью Построителя
выражений, который вызывается нажатием кнопки Построить, расположенной на панели
инструментов Конструктор запросов.
Пример
Сформируем запрос, выводящий ФИО студента, его показатель интеллекта,
фотографию и название факультета для студентов с показателем интеллекта выше 10.
В окне базы данных перейдите на вкладку Запросы и нажмите кнопку Создать. Для
запроса нам потребуются две таблицы Student и Department. Выделите в открывшемся окне
эти две таблицы и нажмите кнопку Добавить, после этого закройте окно. В окне Конструктора
запросов должны появиться два окна со списками полей выбранных ранее таблиц, соединенные
линией, обозначающей связь между таблицами.
В первом столбце бланка запроса в первой строке из раскрывающегося списка выберите
поле Student.CName, перед именем поля введите "FIO:", во втором столбце выберите поле
Student.NIQ, перед именем поля введите "NIQ:", в третьем – Student.OPhoto, перед именем поля
введите "Photo:", в четвертом – Department.CName, перед именем поля введите "Department:".
Во втором столбце в строке Условия отбора введите выражение ">50".
На рисунке представлено окно Конструктора запроса на выборку данных
из таблиц Department и Student
12
Закройте окно Конструктора запросов, дайте запросу название SmartStudent.
Чтобы просмотреть результаты запроса выделите запрос в окне базы данных и нажмите
кнопку Открыть.
Откройте запрос в режиме SQL и посмотрите как будет выглядеть сформированный
запрос на языке SQL. Он должен выглядеть следующим образом: "SELECT Student.CName AS
FIO, Student.NIQ AS NIQ, Student.OPhoto AS Photo, Department.CName AS Department FROM
Department INNER JOIN Student ON Department.NDepartment = Student.NDepartment WHERE
(((Student.NIQ)>50));".
Задание 17. Используя конструктор запросов или вводя SQL операторы, создайте
следующие запросы:
Создайте запрос, который позволит получить сведения о наименованиях предметов
и объемах занятий по ним только для предметов с объемом занятий не менее 50
часов.
2. Создайте запрос, который позволит получить сведения о кодах всех
преподавателей, ведущих занятия. Дублирование кодов должно быть исключено.
3. Не используя операции отношения создайте запрос, который позволит получить все
сведения о предметах с объемом занятий от 40 до 70 часов.
4. Не используя операции отношения создайте запрос, который позволит получить
расположенные в алфавитном порядке сведения о предметах (только
наименования), занятия по которым ведут преподаватели с кодами от 200 до 400.
5. Создайте запрос, который позволит получить сведения о суммарном объеме
занятий каждого преподавателя. Сведения упорядочить по убыванию объема
занятий.
6. Создайте запрос, который позволит получить сведения о преподавателях с
суммарным объемом занятий более 50 часов. Сведения упорядочить по
возрастанию объема занятий, а при равном объеме – по кодам преподавателей в
порядке убывания.
7. Создайте запрос, который позволит получить сведения о предметах, в названиях
которых имеется фрагмент «информ» или «эконом».
8. Определите средний, минимальный и максимальный объемы занятий по предметам,
для которых объем занятий лежит в диапазоне от 35 до 85 часов.
9. Создайте запрос, который позволит получить таблицу, содержащую две колонки –
наименования предметов и фамилии преподавателей, ведущих занятия. Сведения
должны располагаться в алфавитном порядке по наименованиям предметов.
10. Создайте запрос, который позволит определить, есть ли преподаватели, которые
ведут занятия более, чем по одному предмету. Результатом должны быть фамилии
таких преподавателей (без дублирования).
1.
13
11. Создайте запрос, который позволит проверить уникальность кодов предметов в
таблице Subject. Результатом должны быть названия предметов с одинаковыми
кодами.
12. Создайте запрос, который позволит получить сведения о всех предметах, занятия по
которым ведут преподаватели математического и физического факультетов
(считать известными коды факультетов). В результирующей таблице должны
указываться наименования предметов, объем часов, фамилия преподавателя, его
должность, наименование факультета.
13. Создайте запрос, который позволит получить список преподавателей
математического и экономического факультета (считать известными коды
факультетов), общий объем занятий у которых не более 60 часов. В
результирующей таблице должны указываться фамилии преподавателей, объемы
занятий, наименования факультетов.
14. Сформулировать запрос, который позволит выявить все предметы, занятия по
которым ведут преподаватели в должности “доцент”. При работе с таблицей Post
использовать подзапрос.
15. Создайте запрос, который выявит все предметы, объем занятий по которым выше
среднего по всем предметам.
16. Создайте запрос, который выявит все предметы, объем занятий по которым выше
среднего по тем предметам, занятия по которым ведут преподаватели
математического факультета (известен код факультета).
17. Сформулировать запрос, который позволит получить список студентов, научными
руководителями которых являются преподаватели, ведущие занятия по предметам,
в названиях которых есть фрагменты «эконом» или «бух». При работе с таблицей
Subject использовать подзапрос.
18. Сформулировать запрос, позволяющий выбрать студентов с наибольшим
показателем интеллекта.
19. Сформулировать запрос, позволяющий среди студентов, научными руководителями
которых являются преподаватели экономического факультета (задан кодом),
выбрать тех, чей показатель интеллекта выше хотя бы одного показателя
интеллекта для студентов с научными руководителями с других факультетов.
20. Создайте запрос, который позволит получить в виде одной таблицы список
преподавателей и студентов математического факультета (с пояснениями
“Студент” возле фамилий студентов и наименований занимаемых должностей возле
фамилий преподавателей).
21. Создайте запрос, который позволит получить в виде одной таблицы список
студентов, у которых руководителями являются преподавателями факультета, в
названии которого есть фрагмент «матема» и список предметов, занятия по
которым ведут преподаватели того же факультета (определяется так же).
Используйте подзапросы.
Запросы с параметрами
Для того чтобы получить информацию о студентах с другим интеллектуальным
уровнем, например, большим 20, потребуется либо составить новый запрос, либо исправить
условие в ранее созданном запросе SmartStudent. Эти действия придется выполнять каждый
раз, когда потребуется изменить условие отбора записей. Access предлагает другой способ
решения этой проблемы – запрос с параметрами.
Запрос с параметрами – это запрос, при выполнении которого появляется диалоговое
окно, в котором пользователю предлагается ввести данные, например, нижнюю границу уровня
интеллекта. Введенные данные подставляются в запрос вместо определенных в нем параметров,
и запрос выполняется на основе введенных значений. Параметр – это переменная, которая
получает введенное пользователем значение. В бланке запроса параметр записывается в виде
текста приглашения к вводу значения, заключенного в квадратные скобки. Параметр может
использоваться вместо константы в условии отбора записей, например, вместо значения 50 для
нижней границы уровня интеллекта, в этом случае в диалоговом окне пользователь вводит
только значение, или вместо условия целиком, тогда пользователь в диалоговом окне должен
ввести условие в таком же формате, как и в бланке запроса.
Для добавления в запрос параметра откройте запрос в режиме конструктора. В
условиях отбора там, где должен располагаться параметр, в квадратных скобках введите текст
приглашения к вводу данных.
14
Пример
Откройте в режиме конструктора запрос SmartStudent. Вместо числа "50" введите
следующий текст "[Введите уровень интеллекта:]". Сохраните запрос под другим именем,
выбрав в меню пункт Файл, Сохранить как и в открывшемся диалоговом окне выделив
радиокнопку "В текущей базе данных", набрав новое имя запроса в поле ввода и нажав кнопку
ОК. Откройте запрос из окна базы данных. Сначала откроется диалоговое окно, в котором будет
выведен текст "Введите уровень интеллекта:" и расположено поле ввода. В поле ввода введите
значение 80 и нажмите кнопку ОК. В окне появится результат запроса, содержащий две строки
для студентов, уровень интеллекта которых превосходит введенное значение – 80.
Задание 18. Создайте запрос с параметрами, который позволит получить только
фамилии студентов, интеллектуальный уровень которых находится в диапазоне от
0 до первого параметра и от второго параметра до 100 включительно.
Задание 19. Создайте запрос с параметрами, который позволит получить названия
предметов, которые ведут преподаватели, работающие на факультете, название
которого является параметром.
Формы
Интерфейс с пользователем можно организовать при помощи специальных диалоговых
окон, называемых формами, которые сохраняются в базе данных как самостоятельные объекты.
Формы обычно отражают одну запись таблицы или запроса и разрешают просматривать ее или
редактировать, а также вводить новые записи.
Чтобы создать форму, необходимо в окне базы данных перейти на вкладку Формы и
нажать кнопку Создать, при этом откроется окно Конструктора форм.
В режиме конструктора форма представляет собой разлинованную область, на которую
можно поместить различные элементы управления, такие как текст, рисунок, рамка, значение
поля таблицы и др. Все элементы управления собраны на палитре компонентов Панель
элементов, открывающейся вместе с окном Конструктора форм.
Прежде чем начать формировать внешний вид формы нужно определить источник
данных. Для этого выберите в меню пункт Вид, Свойства. В открывшемся окне перейдите на
вкладку Все и поместите курсор на строку «Источник записей», из раскрывающегося списка
выберите таблицу или запрос, поместите курсор на строку «Подпись» и введите название
формы, которое появится в заголовке окна после открытия формы, после этого закройте окно со
свойствами.
Для того чтобы в форме просматривать значения полей, необходимо поместить на
форму соответствующие элементы управления. Выберите в меню пункт Вид, Список полей.
При этом появится окно со списком полей таблицы или запроса, выбранного в качестве
источника данных для формы. В этом списке выберите поле и перетащите его на поверхность
формы. Появятся две прямоугольные области, левая содержит подпись поля, а правая окно для
отображения значений поля. Размеры области можно изменить с помощью мыши. Подпись поля
можно изменить, установив курсор внутри подписи и после изменения цвета фона ввести новое
значение.
В область формы можно поместить статический текст или рисунок, для этого
необходимо щелкнуть по соответствующему значку на палитре компонентов Элементы
управления и щелкнуть на форме в том месте, куда Вы собираетесь поместить элемент
управления.
Размеры, внешний вид и другие характеристики любого элемента управления можно
настроить, выделив элемент управления и выбрав в меню пункт Вид, Свойства. Открывшееся
окно будет содержать характеристики и их значения для выделенного элемента управления.
Пример
Создадим форму для просмотра результатов запроса SmartStudent.
В окне базы данных перейдите на вкладку Формы и нажмите кнопку Создать.
Выберите в меню пункт Вид, Свойства. В открывшемся окне перейдите на вкладку Все
и в строке «Источник записей» из раскрывающегося списка выберите запрос SmartStudent, в
строке «Разрешить изменение» установите значение «Нет», в строке «Разрешить удаление»
установите значение «Нет», в строке «Разрешить добавление» установите значение «Нет», тем
самым форма будет предназначена только для просмотра результатов запроса.
Выберите в меню пункт Вид, Список полей. Перенесите из него в область данных поле
FIO. На форме появятся две области: область слева – надпись, область справа – поле. В левой
15
области измените подпись, введя "ФИО" вместо "FIO:". С помощью мыши настройте размеры и
расположение областей. Когда Вы щелкаете мышью по какому-либо элементу управления в
окне Свойства отражаются характеристики этого элемента управления, а заголовок окна
содержит название элемента управления. Перенесите на форму из окна еще два поля Departmrnt
и Photo, настройте их характеристики: измените подписи "Факультет" и "Фотография",
расположите все элементы управления удобным для восприятия образом.
Теперь настроим заголовок формы. В меню выберите пункт Вид, Заголовок/примечание
формы. К форме будут добавлены две области: выше области данных появится область
Заголовок формы, а ниже – Примечание формы. На панели инструментов Панель элементов
найдите кнопку с подсказкой Надпись, на ней нарисованы две буквы "Аа", нажмите ее и
щелкните мышкой в области Заголовок формы, после курсора введите текст "Лучшие студенты
университета". Настройте характеристики надписи, изменив цвет текста, размер шрифта.
Высоту области Примечания формы сделайте нулевой.
Закрыв окно формы, сохраните ее под именем "Студенты".
Откройте форму, нажав кнопку Открыть в окне базы данных, и просмотрите записи.
На рисунке представлено окно Формы Студенты
В форме можно не только просматривать содержимое одной таблицы, но также и
содержимое ее дочерних таблиц, причем содержимое дочерней таблицы отображается не
целиком, а только те записи, которые связаны с текущей записью родительской таблицы. Для
этого необходимо создать отдельную форму для дочерней таблицы, эта форма будет называться
подчиненной и будет внедрена в форму для родительской таблицы. В форме для родительской
таблицы, эта форма будет называться главной, поместить элемент управления Подчиненная
форма/отчет и ввести имя дочерней формы в свойстве Объект-источник для этого элемента
управления. В подчиненной форме будут видны только связанные записи, т.е. записи дочерней
таблицы, имеющие значение внешнего ключа такое же как значение ключевого поля текущей
записи в главной форме.
Подчиненная форма связана с главной с помощью свойств Основные поля и
Подчиненные поля элемента управления Подчиненная форма/отчет. Эти поля автоматически
заполняются при вводе значения свойства Объект-источник на основе заданных связей между
таблицами. Если связи не заданы (например, когда источником данных в форме является
запрос), то эти свойства необходимо заполнить вручную. В свойстве Подчиненные поля
необходимо ввести имя связующего поля из таблицы или запроса, на котором базируется
подчиненная форма (т.е. имя поля внешнего ключа). В свойстве Основные поля необходимо
ввести имя связующего поля из таблицы или запроса, на котором базируется главная форма (т.е.
имя ключевого поля).
Подчиненная форма может быть трех типов: простая форма, ленточная форма, таблица.
В первом случае подчиненная форма выглядит также как и при обычном ее просмотре. Во
втором случае внешний вид формы повторяется для каждой записи и таким образом получается
лента. В третьем случае записи организованы в виде таблицы.
Внешний вид формы определяется значением свойства Режим по умолчанию для
формы.
16
Задание 20. Создайте форму для просмотра всех сведений о преподавателе с указанием
предметов, которые он ведет и общей нагрузкой, выраженной в количестве часов, а
также с фамилиями учащихся, научным руководителем которых он является.
Используйте подчиненные формы табличного формата для предметов и
ленточного для фамилий студентов. Для расчета общей нагрузки используйте
элемент управления поле, в свойстве Данные которого постройте необходимое
выражение. Сохраните форму под именем Преподаватели.
Задание 21. Создайте форму для просмотра сведений о факультете с указание названия
факультета, списком преподавателей, работающих на этом факультете, списком
студентов, обучающихся на факультете и имеющих уровень интеллекта ниже
введенного пользователем значения, общим количеством преподавателей, средним
интеллектуальным уровнем студентов этого факультета. Выбор названия
факультета должен производиться из раскрывающегося списка. Используйте
подчиненные формы ленточного формата и для студентов и для преподавателей. В
подчиненной форме для студентов должны отображаться поля ФИО и Уровень
интеллекта студента. В подчиненной форме для преподавателей должны
отображаться ФИО и название должности, занимаемой преподавателем. Для
подсчета количества и среднего используйте элемент управления поле. Сохраните
форму под именем Факультеты.
Отчеты
Еще одним объектом базы данных являются отчеты. Отчет – это данные
подготовленные для печати. Чтобы создать отчет необходимо перейти на вкладку Отчеты в окне
базы данных и нажать кнопку Создать. Окно Конструктора отчетов похоже на окно
Конструктора форм. Формирование внешнего вида отчета аналогично формированию внешнего
вида формы.
Отчет состоит из нескольких разделов: Заголовок отчета – данные, расположенные в
этом разделе будут напечатаны только на первой странице отчета, Верхний колонтитул –
данные, расположенные в этом разделе будут печататься вверху каждой страницы отчета,
Заголовок группы – данные, расположенные в этом разделе будут печататься в начале каждой
группы данных, Область данных – данные, расположенные в этом разделе будут печататься для
каждой записи источника данных, Примечание группы – данные, расположенные в этом разделе
будут печататься в конце группы данных, Нижний колонтитул – данные, расположенные в этом
разделе будут печататься в конце каждой страницы отчета, Примечание отчета – данные,
расположенные в этом разделе будут напечатаны на последней странице отчета.
Для отображения / скрытия разделов отчета необходимо выбрать соответствующий
пункт меню Вид, Колонтитулы или Вид, Заголовок/примечание отчета. Для задания группы
необходимо выбрать пункт меню Вид, Сортировка и группировка.
В разделы отчета так же как и в формы переносятся поля источника данных и
дополнительные элементы управления. Аналогично форме отчет может содержать подчиненные
отчеты и вычисляемые поля.
Пример
Создадим отчет по запросу SmartStudent.
В окне базы данных перейдите на вкладку Запросы и нажмите кнопку Создать.
Выберите в меню пункт Вид, Свойства. В открывшемся окне перейдите на вкладку Все
и в строке Источник записей из раскрывающегося списка выберите запрос SmartStudent.
Сгруппируем записи в отчете по названию факультета. Для этого выберите в меню
пункт Вид, Сортировка и группировка. В открывшемся окне в первом столбце первой строки вы
берите из раскрывающего списка поле Department. В нижней части окна установите следующие
характеристики: Заголовок группы – Да, Примечание группы – Да. Закройте окно.
В Область заголовка группы поместите поле Department из окна полей (если оно не
открыто, выберите в меню пункт Вид, Список полей).
В Область данных поместите поля FIO, NIQ, Photo, настройте их характеристики по
своему желанию. У нижней границы Области данных разместите горизонтальную линию.
В Область верхний колонтитул поместите элемент управления надпись и введите текст
"Список лучших студентов университета".
В Область заголовок отчета поместите элемент управления надпись и введите текст
"Университет". Характеристики надписей установите по своему желанию.
17
В Область примечание группы поместите элемент управления поле (он на его кнопке
изображены две буквы и вертикальная черта "аб|". В надписи введите текст "Всего:" и выделите
элемент управления поле. Откройте для него окно свойств и выберите строку Данные. Нажмите
справа от нее кнопку с изображением трех точек для вызова построителя выражений. В левом
нижнем окне дважды щелкните по значку "плюс" напротив слова "функции" и выделите пункт
"Встроенные функции". Найдите в правом нижнем окне функцию Count и дважды щелкните по
ее названию, при этом в верхнем окне должна появиться строка Count("expr"). В круглых
скобках вместо "expr" введите символ звездочка (*) и нажмите кнопку ОК. Эта функция
подсчитывает количество записей. Так как мы ее расположили в области Примечание группы,
то после вывода всех записей группы будет напечатано количество записей в группе, т.е.
количество студентов на факультете.
У нижней границы Области примечание группы разместите горизонтальную линию.
Область нижний колонтитул удалите.
В Области примечание отчета поместите элемент управления поле и в строке данные в
окне его свойств выберите функцию Date().
Закройте отчет сохранив его под именем Факультеты.
Для просмотра отчета в окне базы данных нажмите кнопку Просмотр.
На рисунке представлено окно Конструктора отчета Факультеты
Задание 22. Создайте отчет, содержащий информацию о читаемых каждым
преподавателем предметах. Сгруппируйте предметы по коду преподавателя. Для
каждой группы должны выводиться ФИО преподавателя, его код, название
занимаемой им должности и общее количество часов нагрузки. Для каждого
предмета должны выводиться его название и количество часов. Сохраните отчет
под именем Нагрузка преподавателей.
Задание 23. Создайте отчет, содержащий информацию повторяющую информацию,
представленную в ранее созданной форме Факультеты. Сохраните отчет под
именем Факультеты.
18
Макросы
Макрос представляет собой набор из одной или более макрокоманд, выполняющих
определенные операции, например, открытие таблицы, выполнение запроса, применение
фильтра, печатать отчета и другие.
Чтобы создать макрос, необходимо перейти на вкладку Макросы в окне базы данных и
нажать кнопку Создать. Откроется окно конструктора макросов.
Окно разделено по
горизонтали на две части. В верхней части окна расположена таблица, состоящая из двух
столбцов Макрокоманда и Примечание. Каждая строка таблицы соответствует одной
макрокоманде, которая выбирается из раскрывающегося списка в столбце Макрокоманда, в
столбце Примечание можно ввести комментарий, описывающий действия.
После выбора макрокоманды в нижней части окна появляются аргументы этой
команды, которые необходимо заполнить.
Пример
Создадим макрос, выполняющий запрос SmartStudent.
В окне базы данных перейдите на вкладку Макросы и нажмите кнопку Создать. В
первой строке таблицы в столбце Макрокоманда выберите из раскрывающегося списка
макрокоманду Открыть запрос. В нижней части окна Конструктора появятся три аргумента этой
команды: Имя запроса, Режим, Режим данных. Для первого аргумента, Имя запроса, из
расположенного справа от него раскрывающегося списка выберите запрос SmartStudent.
Аргумент Режим определяет режим открытия запроса и принимает три значения Таблица
(выводится результат выполнения запроса), Конструктор (открывается окно конструктора
запроса), Просмотр (открывается окно предварительного просмотра для вывода результатов
запроса на печать). Выберите для этого аргумента значение Таблица. Аргумент Режим данных
используется только когда запрос открывается в режиме Таблица и определяет какие операции
можно выполнять над данными, полученными в запросе. Он может принимать одно из трех
значений: Добавление, Изменение, Только чтение. Выберите для этого аргумента значение
Изменение. Закройте окно Конструктора запросов и дайте имя макросу SmartStudent.
На рисунке представлено окно Конструктора макроса SmartStudent
Для выполнения макроса в окне базы данных нажмите кнопку Запуск.
Задание 24. Создайте макрос, открывающий форму Факультеты только для чтения.
Задание 25. Создайте макрос, который открывает таблицу Teacher и устанавливает
фильтр для просмотра сведений о преподавателях, имеющих код должности 30 или
работающих на факультете с кодом 200.
Макросы можно использовать в формах и запускать их при нажатии на кнопку.
Пример
Создадим форму для просмотра отчетов.
19
Создайте макрос с именем Нагрузка преподавателей, который открывает для просмотра
отчет с таким названием. Создайте макрос с именем Факультеты, который открывает для
просмотра отчет с таким названием.
Создайте новую форму и поместите на нее два элемента управления кнопка. Выделите
первую кнопку и откройте для нее окно свойств. Установите в свойстве Подпись значение
Отчет по нагрузке. Для свойства Нажатие кнопки в раскрывающемся списке выберите макрос с
названием Нагрузка преподавателей. Выделите вторую кнопку и установите для нее в свойстве
Подпись значение Отчет по факультетам. Для свойства Нажатие кнопки в раскрывающемся
списке выберите макрос с названием Факультеты. Сохраните форму под именем Отчеты.
Откройте форму и попробуйте нажать на кнопки, расположенные на ней.
Иногда требуется изменить порядок выполнения макрокоманд. Для этого в макросе
вводятся условия выполнения или пропуска макрокоманд. Условия вводятся в столбце Условие
в верхней части окна Конструктора макросов. Чтобы увидеть этот столбец, необходимо выбрать
пункт меню Вид, Условия. Если условие истинно, то выполняется макрокоманда, находящаяся в
строке с условием, если ложно, то эта макрокоманда пропускается. Если требуется выполнить
несколько макрокоманд при истинности одного условия, то они записываются в следующих
строках после строки с условием и столбце Условие ставится многоточие.
Пример
Внесем изменения в форму Отчеты.
Откройте форму Отчеты в режиме Конструктора. Перенесите на форму элемент
управления Группа. Перенесите на форму внутрь группы два элемента управления радиокнопка.
Для первого установите в свойстве Подпись значение Нагрузка преподавателей, а для второго –
Факультеты. Измените значение свойства Подпись для первой кнопки на значение ОК. Удалите
вторую кнопку. Для элемента управления группа установите в свойстве Значение по умолчанию
значение 1. Для элемента управления Надпись, который перенесся на форму вместе с элементом
управления группа установите в свойстве Подпись значение Выбор отчета. Сохраните форму
под именем Просмотр отчетов.
Откройте макрос Факультеты в режиме конструктора. Выберите в меню пункт Вид,
Условия. Удалите все заполненные строки. В первой строке в столбце Условие с помощью
построителя
выражений
сформируйте
следующее
логическое
выражение
"[Forms]![Отчеты]![Группа0]=1". В столбце Макрокоманда выберите команду ОткрытьОтчет и
выберите из раскрывающегося списка в поле аргумента Имя отчета отчет Нагрузка
преподавателей. Во второй строке в столбце Условие с помощью построителя выражений
сформируйте логическое выражение "[Forms]![Отчеты]![Группа0]=2", в столбце Макрокоманда
выберите команду ОткрытьОтчет и выберите из раскрывающегося списка в поле аргумента Имя
отчета отчет Факультеты. Установите для обеих макрокоманд в поле аргумента Режим значение
Просмотр. Сохраните макрос.
Откройте форму Просмотр отчетов, выделите желаемый отчет и нажмите кнопку ОК.
После этого должно открыться окно просмотра с выбранным Вами отчетом. Закройте это окно и
выберите другой отчет и нажмите кнопку ОК. При этом должно открыться окно просмотра для
другого отчета.
Если макросу будет присвоено имя "AutoExec", то он будет автоматически при
открытии базы данных.
Задание 26. Создайте форму с кнопками Таблицы, Запросы, Отчеты под именем Главная
форма. При нажатии на кнопку должна открываться форма с таким же названием.
Форма таблицы должна содержать группу с 5 радиокнопками. Каждой кнопке
соответствует таблица. На форме также расположены кнопки Добавить, Изменить,
Найти. При нажатии на кнопку Добавить открывается пустая таблица для ввода
новых записей. При нажатии на кнопку Изменить открывается таблица со всеми
записями для изменения значений и удаления записей. При нажатии на кнопку
Найти открывается таблица только для просмотра и к ней применяется фильтр,
значения для которого являются параметрами и вводятся пользователем.
Форма Запросы должна содержать две кнопки с названиями Преподаватели
и Факультеты, при нажатии на которые открываются ранее созданные формы с
такими же названиями.
Форма Отчеты – это копия формы Просмотр отчетов.
Создайте макрос, открывающий Главную форму, такой, чтобы он
запускался автоматически при открытии базы данных Univer.mdb.
20
Download