Страницы

понедельник, 30 сентября 2013 г.

Простая бд Access - Перевозки

Задание База данных «Перевозки» MS Access (7 вариант).

База данных должна содержать следующие элементы:
  • Таблица «Транспорт»: модель автомобиля; государственный номер автомобиля; удельный расход топлива, л/100 км.
  • Таблица «Заявки»: номер заявки; дата; пункт отправления; пункт назначения; груз; единица измерения; количество груза.
  • Таблица «Доставка»: номер заявки; государственный номер автомобиля; дата отправления; дата возвращения; пройденное расстояние; расход топлива
Поле со списком – таблица «Заявки», поле «Единица измерения».
Поле подстановки – «Государственный номер автомобиля» в таблице «Доставка», источник таблица «Транспорт».

Запросы на выборку:
  1. Перевозки груза из Омска в Тюмень.
  2. Перевозки груза в количестве от 1  до 5 т в Тюмень.
  3. Перевозки груза, отправленные в Москву не позднее 10.09.2009.
Запрос с вычисляемым полем
Количество дней доставки груза (таблица «Доставки»).

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

Запрос с параметром
:
Перевозки в пункт назначения N

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

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


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


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


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


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


Опять используем функцию DateDiff для вычисления разницы между двумя датами.

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

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


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


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


Итоги в отчете не рассчитываются. Можно, конечно посчитать количество груза. Прямо в отчете добавить поле и в свойствах в строке «Данные» написать (или написать в построителе) Sum([Количество груза]). Исправить подпись у этого поля, выбрать нужный формат и число десятичных знаков, шрифт.