Возраст: Year ( Now ())- Year ([Сотрудники]![ДатаРождения])
Эта формула содержит встроенные функции Year (), которая вычисляет год по дате, и Now (), которая вычисляет текущую дату. Встроенные функции можно найти, открыв в построителе выражений в окне обзора папки Функции папку Встроенные функции. Возраст получается как разность между годом, отсчитанным от текущей даты, и годом, отсчитанным от даты рождения (см. рис.46).
Рис.46
Схема формулы вычисляемого поля ФИО
Рис. 47
В следующем столбце постройте выражение для поля Месяц, в котором производится вычисление по дате рождения порядкового номера месяца. В Формуле используется встроенная функция Month ():
Месяц: Month ([Сотрудники]![ДатаРождения])
10. В следующем столбце постройте выражение для поля День, в котором производится вычисление по дате рождения порядкового дня месяца. В формуле используется встроенная функция Day ():
День: Day ([Сотрудники]![ДатаРождения])
Запросы в Конструкторе нужно запускать на выполнение. Для этого нажмите кнопку Выполнить на панели инструментов . Просмотрите результаты и сравните их с рис. 48.
Рис. 48
Задания для самостоятельной работы:
1. Создайте в том же бланке запроса поле Адрес, в котором по названию улицы номеру дома и квартиры формируется адрес в виде одной строки.
2. Измените выражение так, чтобы в адресе автоматически прописывались в нужных местах слова улица, дом и квартира. Например, в результате должно получиться так: улица Иванова дом 5 квартира 75.
3. Введите в бланк запроса условие, по которому отбираются все сотрудники в возрасте от 25 до 40 лет (Вспомните, как задаются логические условия или воспользуйтесь справкой программы в разделе «Логические функции», Использование условий отбора для поиска определенных записей).
Задание 3. Создание параметрических запросов (запросов с параметрами).
Задание: создать запрос, результаты которого зависят от введенного параметра. Запрос с параметром – это запрос, при выполнении которого пользователю предлагается ввести значение какого-либо параметра. Это удобно, так как не требуется для изменения какого-либо параметра переходить в режим Конструктора запроса. Например, нам нужно отобразить список сотрудников того или иного отдела. В качестве параметра будем использовать название отдела.
Последовательность работы:
1.Создайте новый запрос в режиме Конструктора.
2. Укажите тип запроса – Выборка.
3. Поскольку нам нужны сведения из двух таблиц – Сотрудники и Структура предприятия – добавьте их в верхнюю часть запроса.
4. Имя первого поля - Фамилия, второго – имя, третьего – отчество. В четвертом поле напишите имя Название отдела. В строке Условие отбора четвертого столбца напишите в квадратных скобках фразу: [Введите название отдела].
5. Запустите запрос на выполнение. В результате у вас появится диалоговое окно (см. рис. 49).
Рис.49
6. После указания нужного отдела, например, Дирекция, вы получите список работающих в нем сотрудников (см. рис.50). Запрос сохраните с именем «Параметрический отделы».
Рис.50
Задание для самостоятельной работы: создайте запрос с параметром, отображающий список сотрудников того или иного отдела (как предыдущий), но в нем должно указываться поле ФИО и возраст (см. рис.51). Подумайте, какие таблицы или запросы нужно добавить в этом случае в верхнюю часть запроса. Имя запроса – «Параметрический ФИО возраст».
Рис. 51
Задание 4. Создание итогового запроса
Иногда требуется, чтобы результатом выполнения запроса были не значения отдельных записей таблиц БД, а итоговые значения по группам записей. Например, может понадобиться определить средние баллы по экзаменам в каждой учебной группе или найти суммарную стипендию, полученную студентами в каком-то месяце. Получить ответ на такие вопросы можно с помощью итогового запроса.
Найдем число сотрудников в каждом отделе.
Последовательность работы:
1. Перейдите в режим Конструктора запросов и добавьте таблицы Сотрудники и Структура предприятия. На панели инструментов окна запросов нажмите кнопку Итоги .
2. Первое поле – НазваниеОтдела таблицы Структура предприятия. Групповая операция – группировка, можно также задать сортировку по возрастанию (см. рис. 52). Второй столбец заполните по рисунку 52. В первой строке стоит выражение Число сотрудников. Вместе с оператором Count они будут подсчитывать число сотрудников по полю КодСотрудника.
Рис. 52
3. В результате у вас должно получиться так: (см. рис. 53). Сохраните запрос с именем «Итоговый, отделы».
Рис. 53
Задание для самостоятельной работы:
1. Подсчитайте, сколько специалистов (по должности) работает на предприятии. Указание: второй столбец оставьте без изменений, а в первом в качестве групповой операции выберите «условие» и ниже в столбце введите нужное условие отбора. Запрос назовите «Итоговый специалист».
2. Подсчитайте количество сотрудников, рожденных в мае. Назовите запрос «Итоговый дата рождения».
Задание 5. Выведем на экран отделы, в которых работают не менее двух сотрудников.
Последовательность работы:
1. Создайте в Конструкторе итоговый запрос. Заполните первый и второй столбцы запроса согласно рисунку 54.
2. Во втором столбце добавляем оператор Count и условие на выражение: число сотрудников должно быть больше или равно 2.
3. Выполните запрос. Результат сохраните под именем «число сотрудников в отделе».
Рис.54
4. В результате у вас должно получиться так, как на рисунке 55.
Рис.55
Практическая работа №5. Создание и редактирование отчетов
Задание 1. Создадим отчет Отделы, в котором формируется список сотрудников по отделам. Наиболее удобно оформлять отчет, используя мастер.
Отчет − это средство для отображения данных при выводе на печать. Отчет формируется на основе созданных в базе данных таблиц и запросов.
Последовательность работы:
1. В главном меню базы данных на карточке Создание выберите блок команд Отчеты→Мастер отчетов.
2. На первом шаге появившегося диалога выберите из таблицы Структура предприятия поле Название отдела, из запроса Вычисляемые поля − поле ФИО, а из таблицы Сотрудники − поле Должность.
3. На втором шаге выберите группировку данных по названиям отделов. Выделите название отдела и нажмите стрелку повышения уровня (см. рис.56). Группировка позволяет вывести названия отделов в виде оформленных подзаголовков.
Рис.56
4. На третьем шаге задайте сортировку по полю ФИО для того, чтобы фамилии в отчете были расположены в алфавитном порядке.
5. На четвертом шаге выберите вид макета для отчета, например, ступенчатый.
6. На пятом шаге выберите стиль оформления.
7. На шестом шаге введите заголовок отчета: Список сотрудников, и завершите работу мастера, щелкнув на поле Готово. Отчет имеет приблизительно такой вид (см. рис. 57):
Рис. 57
8. После завершения работы мастера включается Режим предварительного просмотра отчета.
9. При просмотре некоторых отчетов можно заметить некоторые недочеты, которые можно исправить следующим образом: вставить пробелы, записать полностью Фамилия, Имя, Отчество, убрать рамки у названий отделов, выделить некоторые надписи жирным шрифтом.
10. Для исправления отчета перейдите в режим конструктора. В меню Вид выберите Панель элементов, выделите кнопку Надпись и нарисуйте небольшую рамку для надписи в области заголовка. В рамке напишите «По состоянию на …». Перенесите из области нижнего колонтитула в область заголовка объект с функцией Now (), который выводит в отчет текущую дату (выделите его и следите за тем, чтобы двунаправленная стрелка находилась на нижней границе, а не на темном уголке, иначе он не перейдет в другую область) (см. рис.58).
Рис.58. Отчет в режиме Конструктора
Рис.59. Готовый отчет
Задание 2. Отчет «Дни Рождения»
В этом отчете сформируем список сотрудников и их дни рождения, расположенные в порядке следования в календарном году.
Порядок работы:
1. Добавьте в запрос «Вычисляемые поля» поле ДатаРождения, изменения сохраните и закройте запрос.
2. Запустите Мастер отчетов и включите в отчет поля из запроса «Вычисляемые поля»: ФИО, Возраст, Месяц, День, ДатаРождения.
3. Удалите из получившегося в результате работы Мастера макета надписи и поля Месяц и День (см. рис.60).
Рис.60
4. Исправьте надписи в верхнем колонтитуле: ФИО на Фамилия Имя Отчество, ДатаРождения на Дата рождения. Изменяйте только надписи, а не сами поля. Примерный вид отчета – на рисунке 61.
Рис. 61. Отчет «Дни рождения»
Задание 3. Отчет «Представительский»
В этом отчете создается единая форма нагрудной представительской карточки для сотрудников фирмы. Отчет содержит эмблему предприятия, фамилию, имя, отчество сотрудника, название отдела и должность.
Последовательность работы:
1. Запустите Мастер отчетов и включите в него поля Имя, Отчество, Фамилия, Должность из таблицы Сотрудники и поле НазваниеОтдела из таблицы Структура предприятия.
3. Выберите вид макета - «в столбец», стиль оформления - Обычный.
4. После создания отчета при помощи мастера перейдите в режим Конструктора для корректировки макета отчета.
5. Удалите объекты из области заголовка отчета и нижнего колонтитула. Для этого щелчком выделите объект и нажмите Del . Следите за тем, чтобы не удалить и поля вместе с надписями. Чтобы этого не случилось, выберите меню Упорядочить, выделите прямоугольники-надписи и удалите макет оформления (рис. 62), нажав кнопку Удалить. Проделайте все это для каждой надписи. Все это для того, чтобы каждый прямоугольник можно было изменять и удалять по отдельности.
Рис.62
6. Удалите надписи полей из области данных.
7. Уменьшите до нуля высоту всех областей отчета, кроме области данных.
8. Измените размеры области данных до размеров нагрудной карточки 9х5,5 см. Для этого наведите курсор на правую (или нижнюю) границу области до появления двусторонней стрелки, захватите и переместите границу.
9. Добавьте рисунок эмблемы (если есть).
10. Обведите визитку рамкой, выбрав инструмент Прямоугольник на панели элементов. Измените формат рамки: вид, толщину границы, цвет границы и внутреннего заполнения. Просмотрите результат (данные могут не совпадать, см. рис.63).