Материал: Ивличев П.С. Практикум по информационным технологиям. Ч. 5. Проектирование баз данных

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

41

Необходимо указать ФИО сотрудника, его должность и специальное звание, вид поощрения, дату его применения, номер приказа.

Задание 20. Запросы с параметром Для использования одного запроса с целью извлечения однотипных

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

Запрос – Личный номер

Пусть требуется по личному номеру определить ФИО сотрудника, его должность и специальное звание.

1. Выполните команду Конструктор запросов на вкладке Созда-

ние.

2.Добавьте в запрос таблицу Список сотрудников.

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

4.В качестве условия отбора в поле Личный номер введите пара-

метр с пояснением – [Введите личный номер сотрудника].

5.Сделайте поле Личный номер не выводимым на экран.

6.Закройте запрос, присвоив ему имя Личный номер.

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

мер С-114820.

7.1.Двойным щелчком запустите запрос на выполнение. Появится диалоговое окно для ввода параметра (Рисунок 28).

Рисунок 28 – Окно ввода параметров

7.2.Введите в поле требуемый номер (поскольку на поле Личный номер назначена маска ввода, знак тире не вводится!) и нажмите ОК. Появится результат выполнения запроса (Рисунок 29).

Рисунок 29 – Результат выполнения запроса

8. Выясните, кому принадлежат номера С-115158 и С-114050.

Самостоятельно создайте запрос.

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

42

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

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

Запрос – Поощренные сотрудники

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

1. Выполните команду Конструктор запросов на вкладке Созда-

ние.

2.Добавьте в запрос таблицы Список сотрудников и Журнал учета поощрений.

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

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

ощрений.

5.Закройте запрос, присвоив ему имя Поощренные сотрудники.

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

7.Щелкните правой кнопкой мыши на запросе Поощренные сотрудники и выберите команду контекстного меню Конструктор.

8.На вкладке Конструктор выполните команду Итоги . В таблице добавленных полей появится дополнительная строка (Рисунок 30).

Рисунок 30 – Групповые операции

9.Установите тип групповой операции Группировка. Сделайте поле Личный номер не выводимым на экран. Закройте запрос, сохранив изменения в его структуре.

10.Откройте запрос. Убедитесь, что повторяющихся записей больше

нет.

43

Помимо операции Группировка, к групповым операциям относят следующие (Таблица 11).

Таблица 11 – Список групповых операций

Sum

Сумма значений в группе или поле

Min

Минимальное значение в группе или поле

Max

Максимальное значение в группе или поле

Count

Количество записей в группе или поле

First

Первая запись в группе или поле

Last

Последняя запись в группе или поле

Запрос – Сколько раз применялись виды поощрений

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

1. Выполните команду Конструктор запросов на вкладке Созда-

ние.

2.Добавьте в запрос таблицы Виды поощрений и Журнал уче-

та поощрений.

3.Добавьте в запрос поле Вид поощрения из таблицы Виды поощрений.

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

например, поле Номер.

5.Выполните команду Итоги на вкладке Конструктор.

6.В поле Вид поощрения установите операцию Группировка, в

поле Номер – операцию Count.

7.Поместите курсор в поле Номер и нажмите на вкладке Кон-

структор кнопку Страница свойств

8.В окне свойств, на вкладке Общие в поле Подпись введите но-

вое наименование поля: Количество применений.

9.Закройте запрос, присвоив ему имя Сколько раз применя-

лись виды поощрений.

10.Откройте запрос. Посмотрите результаты его выполнения (Рисунок 31).

44

Рисунок 31 – Запрос с итогами

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

1.Запрос – Список применявшихся взысканий. Должен со-

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

2.Запрос – Количество поощрений. Должен содержать информацию о количестве поощрений у каждого из сотрудников с указанием его фамилии, имени, отчества, должности и специального звания.

3.Запрос – Количество взысканий в приказах. Должен со-

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

Задание 22. Перекрестные запросы Для наглядного представления данных в случае группировки по не-

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

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

Запрос – Статистика поощрений

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

1. Создайте промежуточный запрос ФИО и поощрения, содержащий необходимые поля.

1.1.Выполните команду Конструктор запросов на вкладке Создание.

1.2.Добавьте в запрос таблицы Виды поощрений, Журнал учета поощрений и запрос Список сотрудников (Объединенные ФИО).

45

1.3.В области таблиц перетащите поле Личный номер из запроса Спи-

сок сотрудников (Объединенные ФИО) на поле Личный но-

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

Рисунок 32 – Связывание источников данных

1.4.Добавьте в запрос поля выражение1, должность и специальное звание, для группировки по сотрудникам (поле выражение1 содержит ФИО сотрудника).

1.5.Добавьте в запрос поле Вид поощрения для организации группировки по поощрениям.

1.6.Добавьте в запрос поле Номер для подсчета итогового значения в группе.

1.7.Сохраните запрос под именем ФИО и поощрения.

2.Создайте перекрестный запрос.

2.1.Выполните команду Мастер запросов на вкладке Создание.

2.2.В открывшемся диалоговом окне выберите Перекрестный запрос и нажмите кнопку ОК.

2.3.Выберите запрос ФИО и поощрения и нажмите кнопку Далее.

2.4.В качестве заголовков строк выберите поля выражение1, долж-

ность и специальное звание. Нажмите кнопку Далее.

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

2.6.Для поля Номер установите функцию Число.

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

2.8.Введите имя запроса Статистика поощрений.

3.Отредактируйте имя поля Итоговое значение Номер.

3.1.Откройте созданный запрос в Конструкторе.

3.2.Щелкните правой кнопкой мыши на поле Итоговое значение Номер и отобразите окно свойств.

3.3.Измените имя поля на Всего поощрений.

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