
- •Введение
- •1. Основные понятия и краткая характеристика Microsoft Access
- •Архитектура Microsoft Access
- •2. Начало и окончание работы с Microsoft Access
- •3. Создание базы данных в Microsoft Access.
- •3.1. Создание базы данных.
- •Создание базы данных с помощью мастера.
- •Создание пустой базы данных вручную
- •3.2. Работа в окне базы данных
- •4. Таблицы в Microsoft Access
- •4.1. Создание таблицы в режиме конструктора
- •4.2.Типы данных в Access
- •Типы данных в Access
- •4.3. Свойства поля
- •Символы, используемые в маске ввода
- •5. Установление связей между таблицами
- •6. Подстановка значений
- •7. Создание форм
- •Порядок создания формы в режиме конструктора:
- •Работа в режиме конструктора формы
- •8. Работа с запросами
- •Создание запроса в режиме конструктора
- •Работа в окне конструктора запросов
- •Запрос с параметром
- •9. Подчиненные формы
- •10. Запросы к нескольким источникам. Отчеты
- •Задания для самостоятельной работы
- •Вопросы для самопроверки
- •Список использованной литературы
9. Подчиненные формы
В форму можно внедрять другие формы до трех уровней вложенности. Внедренные формы называются подчиненными тем формам, в которые они вложены. Подчиненные формы используются для просмотра и корректировки данных в двух (или более) таблицах, между которыми существует связь один ко многим. Со стороны один – главная форма, со стороны многие – подчиненная форма.
Создать подчиненную форму можно разными способами. В упражнении 9.2 предлагается один из наиболее простых способов.
Упражнение 9.1. В базе данных Кадры создайте таблицу Дети, содержащую следующие поля:
ТабНом — число длиной в байт, индексированное поле, совпадения допускаются (табельный номер сотрудника);
Фам — текстовое (фамилия сотрудника);
Имя — текстовое (имя ребенка);
ДР — тип дата/время, формат выбрать (дата рожденья ребенка);
Пол — с помощью мастера подстановок установить м (мальчик) или д (девочка).
В качестве первичного ключа укажите ТабНом и Имя (составной ключ). Для этого щелкните мышкой на заголовке строки ТабНом, нажмите и не отпускайте клавишу Shift и щелкните на заголовке строки Имя. После этого выполните команду Правка Ключевое поле или щелкните на кнопке ключевое поле на панели инструментов.
В схеме данных установите связь данной таблицы с таблицей Сотрудники через поле ТабНом. Придумайте и введите в таблицу Дети несколько записей.
Упражнение 9.2. Для удобства ввода данных в таблицу Дети создайте для нее ленточную форму и вставьте в качестве подчиненной в форму Сотрудники.
Порядок выполнения:
Для таблицы Дети создайте ленточную форму с именем Дети;
Откройте в режиме конструктора форму Сотрудники;
Перетащите мышкой нижнюю границу формы таким образом, чтобы внизу было пространство для вставки одного поля;
Измените размеры и положение окна базы данных и конструктора форм таким образом, чтобы окно базы данных не закрывало нижней части формы в окне конструктора форм, и в окне базы данных был виден значок формы Дети. Вариант такого расположения показан на рис.9.1;
Перетащите мышкой значок формы Дети в нижнюю часть формы в окне конструктора;
Отформатируйте форму Сотрудники и сохраните с прежним именем.
Внимание. При форматировании формы Сотрудники в режиме конструктора форм доступно любое форматирование и подчиненной формы Дети
Рис. 9.1. Главная форма в режиме конструктора и значок подчиненной формы (Дети) в окне базы данных
Упражнение 9.3. Откройте форму сотрудники в режиме просмотра. Она должна быть похожа на ту, что приведена на рис.9.2.
Если Вы проделали все согласно упражнениям 9.1 и 9.2 и, главное, в такой последовательности, то в поле ТабНом подчиненной формы значения будут проставляться автоматически. Придумайте и введите несколько записей в подчиненную форму.
Рис.9.2. Форма Сотрудники с встроенной подчиненной формой Дети
10. Запросы к нескольким источникам. Отчеты
Access позволяет вывести на печать (получить твердую копию) любую таблицу и результаты выполнения запроса. Однако, лучше для этих целей использовать специальный объект – отчет.
Отчеты – это результаты обработки данных, предназначенные для вывода на печать. Отчет позволяет выполнять вычисления с данными, группировать данные по нескольким признакам, вычислять итоги разных уровней и, наконец, форматировать будущий выходной документ.
Отчеты на основании таблиц создаются довольно редко. Как правило, сначала создается запрос (запросы), а затем на основании этого запроса создается отчет.
Порядок создания отчета во многом (но не во всем) похож на создание формы. В отчете можно использовать многие из элементов управления, используемые в формах.
Задание 10.1. В окне базы данных активизируйте вкладку Отчеты и щелкните на кнопке Создать. В открывшемся диалоговом окне появится предложение выбрать способ создания отчета. Спишите в тетрадь предлагаемые способы создания отчета и краткую справку по каждому способу, высвечиваемую слева по мере перемещения указателя мыши по строкам списка.
Рассмотрим следующую задачу.
Задача. На новогодние праздники администрация предприятия решила выдать подарки детям сотрудников, возраст которых не превосходит 15 лет. К каждому подарку прилагается поздравительная открытка, примерный вид которой показан на рис. 10.2. Предполагается, что подарки выдаются родителям детей под роспись в специально заготовленной ведомости. В этой ведомости должны быть проставлены наименования подразделений, в которых работают родители детей, фамилии родителей и количество подарков, полученных отдельными сотрудниками, количество подарков, выделенных каждому подразделению и общее количество подарков по предприятию. Кроме того, должно быть предусмотрено место для росписи.
Подготовка соответствующей ведомости и печать открыток поручены сотрудникам, ведущим базу данных Кадры.
Упражнение 10.1. В базе данных Кадры создайте запрос с именем Подарки к новому году, который позволяет оформить выше оговоренные документы. Вид этого запроса в режиме конструктора показан на рис 10.1.
Рис. 10.1. Запрос Подарки к новому году в режиме конструктора
Порядок выполнения
В окне базы данных Кадры выделите вкладку Запросы;
Щелкните на кнопке Создать;
В открывшемся окне выберите Конструктор и щелкните на кнопке ОК;
В появившемся окне Добавление таблицы добавьте таблицы Сотрудники, Подразделения и Дети;
Перенесите в бланк запроса поля:
Из Подразделения — Наименование,
Из Сотрудники — Фам (фамилия родителя),
Из Дети — Имя, Пол и ДР (поле Пол будет использовано для формирования удобочитаемого обращения в открытке);
В столбце ДР введите соответствующее условие и сделайте этот столбец невидимым (это поле используется только для выборки нужных записей из базы данных);
Сохраните запрос с именем Подарки к новому году.
Совет. Для отладки придумайте и введите в таблицу Дети несколько строк данных (если у Вас в форме Сотрудники есть подчиненная форма Дети, то для ввода можно воспользоваться ей). В отладочных данных должны быть как мальчики, так и девочки. Возраст также должен позволять проверить правильность проверки условия в запросе.
Упражнение 10.2. Создайте отчет в виде наклеек, форма которого показана на рис. 10.2.
Выполнить это упражнение можно, по крайней мере, двумя способами.
Первый. Создать отчет в режиме конструктора отчетов. Работа выполняется точно так же, как создание формы в режиме конструктора. Разница лишь в том, что мы создаем отчет, а не форму.
Рис. 10.2. Примерный вид открытки в окне базы данных
Второй. Создать отчет в режиме создания почтовых наклеек, а затем, в режиме конструктора, внести необходимые изменения.
В этом случае работу выполните в два этапа: на первом — создайте отчет в режиме Этикетки, перенеся в него необходимые поля из запроса; на втором — добавьте недостающие поля и надписи, введите необходимые формулы, текст и рисунок, отформатируйте (цвет, шрифт, размер).
Рекомендации:
Прежде всего, выберите размер и ориентацию бумаги (меню Файл, команда Параметры страницы). Расположите одну этикетку на странице.
Для получения надписи “Дорогой/Дорогая” вставьте вычисляемое поле и введите в него выражение
=IIf([Пол]=”д”;”Дорогая”;”Дорогой”)
IIF — это функция. Она записывается следующим образом:
IIf(<<условие>>;<<выражение_1>>;<<выражение_2>>)
и выполняет следующее:
Проверяет (вычисляет) Условие. Если значение условия равно истина, то вычисляется и возвращается значение выражение_1, иначе (если ложно) — значение выражение_2. Другими словами — это аналог функции ЕСЛИ в Excelе.
Для впечатывания в поле имени ребенка восклицательного знака введите в это поле выражение
=Trim([Имя] & “!”)
Trim — это строковая функция, которая записывается следующим образом:
Trim (<строковое выражение>)
и возвращает значение строкового выражения без незначащих пробелов в начале и в конце строки.
& — это знак операции сцепления (склеивания) строковых значений.
Совет. Чтобы иметь более полное представление о виде открыток в напечатанном виде, измените масштаб изображения при их просмотре на экране.
Упражнение 10.3. В базе данных Кадры создайте отчет с именем Ведомость на новогодние подарки, содержание которой оговорено выше (перед упражнением 10.1).
Рекомендации. Самый простой путь создания названной ведомости — выполнить работу в два этапа:
Сначала создать запрос на основании запроса Подарки к новому году, в котором нужно подсчитать количество детей у работников. Назовем этот запрос Ведомость на выдачу подарков. Этот запрос создается в режиме Простой запрос. В качестве группировочных признаков следует указать Наименование подразделения и Фам сотрудника. В запросе выводить все строки и итоги. На вкладке Итоги указать, что следует вычислять количество записей.
На втором шаге в режиме Мастер отчетов создать отчет с именем Ведомость на выдачу подарков. После этого в режиме конструктора отчетов внести в форму отчета необходимые изменения. Эти изменения касаются изменения содержания надписей, упрощения формул в полях и форматирования шрифтов. Кроме того, используя функцию IIF, в соответствующих областях отчета вставьте вычисляемые поля для печати слов “подарок”, “подарка” или “подарков”.
Вариант окончательного вида ведомости показан на рис. 10.3.
Совет. При просмотре, так же как в случае с открытками, следует изменять масштаб изображения.
Ведомость на выдачу новогодних подарков
Подразделение Сотрудник Количеств Роспись
А
дминистрация
Адамов 2 подарка
И
того
по подразделению Администрация 2 подарка
Бухгалтерия Богданов 1 подарок
Ершова 1 подарок
Котов 1 подарок
И того по подразделению Бухгалтерия 3 подарка
Плановый отдел Андреев 1 подарок
И того по подразделению Плановый отдел 1 подарок
ИТОГО по предприятию 6 подарков
Рис.10.3. Ведомость на выдачу новогодних подарков