Страницы

пятница, 27 сентября 2013 г.

Простая бд Access - Оптовая база

Задание База данных «Оптовая база» MS Access (3 вариант).
База данных должна содержать следующие элементы:
Таблица «Товары»: код товара; товар; единица измерения; цена.
Таблица «Склад»: дата поступления, код товара; количество.
Таблица «Заявки»: номер заявки; организация; код товара; требуемое количество товара.
Таблица «Отпуск товаров»: номер заявки; код товара; дата отпуска товара; количество отпущенного товара

Поле со списком – таблица «Товары», поле Единица измерения.
Поле подстановки – Код товара в таблице «Склад», источник таблица «Товары».

Запросы на выборку:
Поступления товара «Сухое молоко»
Товары для организации «Восход» в количестве от 1000  до 5000 кг.
Товар «Сухое молоко», поступивший до 15.09.2008.

Запрос с вычисляемым полем
Доход от продажи товара (таблица «Отпуск товаров»).

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

Запрос с параметром:
Организации, которые приобрели товар N

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

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

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

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


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

Ну, поехали к запросам и прочему.

Первый запрос на выборку:


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


В этом запросе используем функцию Between. Она возвращает значения из указанного диапазона, в данном случае количество товара от 1000 до 5000 кг.

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


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


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


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


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


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


Видим, что итоги считаются по количеству товара. Это хорошо, когда единицы измерения и товары одни и те же. А если мы складываем 1 банку компота и пять кг соли? И в итоге получаем 6 непонятно чего.
Что можно поменять в этом отчете? Лучше всего добавить в запрос для отчета вычисляемое поле Сумма (количество * цена) и считать итоги по этой сумме. Получится более информативно.