Страницы

суббота, 28 сентября 2013 г.

Простая бд Access - Библиотека

Задание База данных «Библиотека» MS Access (4 вариант).
База данных должна содержать следующие элементы:
Таблица «Книги»: жанр; шифр книги; автор; название; год издания; количество экземпляров.
Таблица «Читатели»: номер читательского билета; Ф.И.О.; адрес.
Таблица «Выдачи»: дата выдачи; номер читательского билета; шифр книги; количество экземпляров; срок возврата; фактическая дата возврата

Поле со списком – таблица «Книги», поле «Жанр».
Поле подстановки – «Шифр книги» в таблице «Выдачи», источник таблица «Книги».

Запросы на выборку:
  1. Книги, взятые на абонемент читателем Р. А. Петровым.
  2. Книги, выданные в мае 2008 г. в количестве более 5 шт.
  3. Книги жанра «Наука», выданные читателю П. Л. Цветкову.
Запрос с вычисляемым полем
Просрочено дней читателем (таблица «Выдачи»).

Групповой запрос:
Количество книг, прочитанных каждым читателем (таблица «Книги»).

Запрос с параметром:
Книги, выданные читателю N

Отчет по выдаче книг, сгруппированный по жанру, сортировка по ФИО читателя.

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

Составляем таблицы и логическую схему, описываем типы данных и другие параметры полей данных.
Запускаем СУБД MS Access и начинаем составлять таблицы. Потом устанавливаем связи.
Схема базы данных в MS Access.

База данных очень простая, даже без всяких особенностей. Три таблицы, из них два справочника («Книги» и «Читатели») и одна таблица с информацией по выдаче книг. Справочники главные по отношению к таблице выдачи по соответствующим ключевым полям – «Шифр книги» и «Номер читательского билета»  (читбилета в базе, для краткости). Всего лишь две связи один-ко-многим.
Даже не знаю, где лучше сделать маску ввода, и полей-то подходящих нет, все слишком просто. В датах – краткий формат даты.
Переходим к запросам.
Первый запрос на выборку:


Второй запрос на выборку

В этом запросе удобней использовать функцию Between. Она возвращает значения из указанного диапазона, в данном случае даты от 1 до 31 мая 2008 года..

Третий запрос на выборку


Запрос с вычисляемым полем


Здесь используем функцию подсчета разности дат DateDiff. Интервал ставим d, то есть расчет пойдет в днях. В условии отбора установим  «>0», чтобы в результат выдавались только просроченные выдачи.

Групповой запрос


Запрос с параметром

Делаем отчет. Многотабличный запрос

Отчет в режиме конструктора:

Итоги подсчитаны по выданным книгам.