
- •Оглавление
- •Необходимые знания и навыки:
- •Тематический план модуля:
- •Основные понятия баз данных.
- •Процесс разработки базы данных
- •Начало работы с базами данных. Настройка параметров. Работа с таблицами
- •Работа с запросами. Получение информации с помощью запросов
- •Работа с формами
- •Работа с отчетами
- •Требования к знаниям, умениям, навыкам
- •Создание базы данных (бд), создание таблиц, заполнение таблиц информацией. Основные сведения о создании баз данных
- •Терминология, связанная с базами данных
- •Правильная структура базы данных
- •Процесс разработки
- •Определение цели создания базы данных
- •Поиск и организация необходимых данных
- •Распределение данных по таблицам
- •Преобразование элементов данных в столбцы
- •Задание первичных ключей
- •Создание связей между таблицами
- •Зачем создавать межтабличные связи?
- •Типы межтабличных связей
- •Усовершенствование структуры
- •Применение правил нормализации
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Создание базы данных
- •Создание таблицы Книги
- •Создание таблицы Заказ книги
- •Создание таблицы Читатели
- •Создание связей между таблицами
- •Работа с данными в режиме таблицы
- •Заполнение таблиц начальными данными
- •Создание запросов
- •Запрос, работающий с одной таблицей
- •Запрос, отбирающий данные из одной таблицы по условию
- •Итоговые запросы.
- •Перекрестный запрос
- •Запросы, которые отбирают данные из нескольких таблиц
- •Запрос на выборку из двух таблиц
- •Итоговый многотабличный запрос
- •Запрос на поиск записей без подчиненных
- •Модификация данных с помощью запросов Запросы, которые изменяют значение полей записей
- •Запрос на создание новых таблиц.
- •Создание запроса, который добавляет запись в таблицу
- •Создание запросов на удаление данных.
- •Создание запроса Удаление должника
- •Создание запроса Сдать книгу
- •Создание форм
- •Создание форм для просмотра и ввода данных Создание формы Книги
- •Создание формы Ввод данных о читателя
- •Создание формы Должники формы Ввод данных о читателя
- •Создание формы Изменение стоимости
- •Создание формы Выбор книги
- •Создание формы с подчиненной формой
- •Создание формы Читатели
- •Создание кнопочных форм при помощи диспетчера кнопочных форм
- •Создание отчетов для вывода данных на принтер Создание отчета с помощью Мастера отчетов
- •Создание простого отчета с итогами
- •Отчет на основе нескольких таблиц и запросов
- •Задание
- •Оценивание:
- •Варианты индивидуальных заданий
- •Контрольные вопросы
Перекрестный запрос
Перекрестный запрос – особый тип итогового запроса, который разрешает вывести вычисленные значения в перекрестной таблице, которая напоминает сводную таблицу в Excel.
Подсчитайте суммарную стоимость книжек для каждого года издания по издательствам.
Для этого создайте перекрестный запрос мастером запросов Перекрестный запрос закладка Создание группа Другие. В окнах диалога выберите последовательно таблицу, названия строк, названия столбцов, функцию обработки данных. Для нашего случая это: таблица – Книги; названия строк – Год; названия столбцов – Издательство; функция – Sum(Стоимость). Установим итоговое значение – Итоговое значение по срокам.
Рисунок 19. Результат выполнения перекрестного запроса
Откройте созданный запрос в режиме Конструктор.
Рисунок 20. Конструктор перекрестного запроса
Запросы, которые отбирают данные из нескольких таблиц
При создании таких запросов к верхней части окна конструктора запросов выбираем несколько таблиц. Если связи между таблицами были созданы в окне Схема данных, то в этом окне они появятся автоматически. Теперь можно выбирать в один запрос поля из нескольких таблиц. Существует два разных типа объединения двух таблиц – внутреннее и внешнее. Если объединение внутреннее (именно его вы установили), то в один запрос будут объединены записи, в которых совпадают значения в полях связи. Если какая-нибудь запись в одной таблице не имеет соответствующей записи в другой таблице, то эта запись не будет включена в запрос. Внешнее объединение будет рассмотрено позднее.
Создадим поля, которые вычисляются, так как в таблицах баз данных (в отличие от электронных таблиц) никогда не сохраняют данные, которые могут быть вычислены по данным из таблиц. В большинстве случаев потому, что это требует значительных затрат памяти и замедляет поиск необходимых данных и обработку данных в таблицах. Все необходимые вычисления выполняют в запросах, создавая поля, которые вычисляются. Для создания таких полей в свободном столбце конструктора запросов записывают новое имя поля, знак двоеточия :, а потом выражение, которое использует имена других полей и вычисляет необходимое значение.
Например, вычислим пеню, если есть поля Количество дней задержки и Стоимость. В новом столбце запишем:
Пеня: [Количество дней задержки]*[Стоимость]*0,01
Имена полей записываются в квадратных скобках.
При записи выражений можно использовать встроенные функции Access. Имена этих функций, в отличие от Excel, не переведены на русский, они пишутся по-английски, но по смыслу многие из них совпадают с функциями Excel. Приведем несколько функций:
IIf(условие; выражение1; выражение2) – вычисляет выражение1, если условие выполняется, и выражение2, если условие не выполняется (совпадает с функцией ЕСЛИ в Excel).
DateDiff(“d”; дата1; дата2) – вычисляет разность между двумя датами в днях. Если первый аргумент “m” – разность дат вычисляется в месяцах, если “y” – в годах.
Полный список всех функций вы найдете в окне Построитель выражений.
Запрос на выборку из двух таблиц
Создайте запрос, который отбирает и объединяет записи из двух таблиц – Книги и Заказ книги, чтобы показать, какие книги были выданы читателям, и содержит вычисляемое поле с именем Пеня, которая начисляется на каждую книгу, не возвращенную своевременно. Размер пени равен 1% от стоимости книги за каждый просроченный день.
Создайте запрос с именем Начисление пени. Для создания запроса перейдите на вкладку Создание и выберите инструмент Конструктор запросов в группе Другие.
Добавьте в запрос таблицы Книги и Заказ книги. В окне схемы данных должна быть показана связь между таблицами по полю Инв№ – инвентарный номер книги.
Перетяните мышью в нижнюю половину окна поля, которые необходимо включить в запрос: Автор, Название, Стоимость, Инв№ (не выводить на экране), Дата выдачи, Дата возврата, Номер. Последнее поле потребуется для связи запроса с таблицей Читатели.
В первой свободной колонке нижней части окна создайте поле, которое вычисляется, с именем Пеня. Для этого наберите в верхней строке, где располагается имя поля, такой текст: Пеня: IIf([Дата возврата]<Date(); DateDiff("d"; [Дата возврата]; Date() )*0,01 *[Стоимость]; 0)
Рисунок 21. Конструктор запроса Начисление пени
Для создания такого выражения можно использовать Построитель выражений. Для этого в группе Настройка запроса выберите инструмент Построить на вкладке Работа с запросами/Конструктор. На экране откроется окно Построителя выражений. В этом окне можно создавать выражение последовательным добавлением к нему полей таблиц или запросов, функций, констант и операторов. Имена полей записываются в квадратных скобках.
Рисунок 22. Использование Построителя выражений
Сохраните запрос под именем Начисление пени. Выполните запрос. Размер пени, разумеется, зависит от текущей даты, на которую он вычислялся. Пример приведен на 29.01.09.
Рисунок 23. Результат выполнения запроса Начисление пени