- •Методические указания по проектированию учебной базы данных и приложений к ней
- •Цели и задачи курсового проектирования
- •Основные требования к курсовой работе.
- •Структура и содержание отчета по курсовой работе
- •Оформление курсовой работы
- •Список литературы
- •Методические указания к проектированию баз данных под управлением субд access Пример базы данных оптовой фирмы.
- •Этапы проектирования базы данных
- •Проектирование реляционной модели бд
- •8. Поле объекта ole
- •9. Гиперссылка
- •10. Мастер подстановок
- •Создание базы данных в среде субд access
- •Создание структуры таблиц
- •Объединение структур таблиц в единую схему
- •Проектирование приложения «Учет и анализ выполнения заказов»
- •Разработка форм ввода данных
- •Описание создания формы «Ввод справочника о товарах»
- •Описание создания формы «Заказы»
- •Создание макета формы «Заказы»
- •Создание подчиненной формы «Спецификация»
- •Создание связанной формы «Оплата»
- •Продолжение создания формы «Заказ»
- •Создание кнопочных форм
- •Создание запросов
- •Разработка первого запроса
- •Разработка второго запроса
- •Создание третьего запроса.
- •Создание четвертого запроса
- •Проектирование отчетов
- •Расширение функциональности приложений
- •Построение формы по результатам запроса
- •Использование объектов в приложениях
- •Использование базы данных в сети
Создание кнопочных форм
Кнопочная форма создается с помощью мастера кнопочных форм, который запускается путем выбора пункта меню «Сервис – Служебные программы – Диспетчер кнопочных форм». Работа мастера начинается с появления следующего окна.
В результате будет создана кнопочная форма с кнопкой вызова формы «Товар». Кнопки вызова других созданных форм создаются аналогичным образом. В результате добавления вызовов форм ввода, создания кнопочной формы для вызова отчетов и вставке ссылки на него, а так же построения кнопки выхода из приложения окно конструктора примет вид:
После создания всех кнопок и закрытия окон мастера открытая кнопочная форма примет следующий вид:
Нажатие первых трех кнопок приведет к вызову соответствующих экранных форм, четвертая кнопка откроет страничку отчетов, которые будут рассмотрены ниже, пятая закроет приложение. Кнопочную форму можно декорировать, вставив в нее рисунки и надписи.
Внимание! Прежде чем продолжать работу заполните базу данных: заполните справочник товаров и справочник клиентов (по 10-15 наименований ); введите несколько заказов (больше 10), указав разные варианты оплаты – полная, частичная оплата и неоплаченные заказы.
Создание запросов
Запрос представляет собой формализованное требование на манипуляцию данными базы. Под манипуляцией понимается совокупность действий, включающих выборку, изменение и добавление информации в базе данных. В него входит перечень полей для просмотра и условий отбора данных. В примере задания заданы четыре запроса:
Какие клиенты не оплатили заказы на данный момент;
Каково состояние оплаты заказов клиентами – сумма заказа , оплачено, отклонение;
Какие клиенты заказали тот или иной товар и сколько;
Какова стоимость продаж за заданный период.
Разработка первого запроса
На примере первого запроса покажем методологию разработки запросов. В процессе создания запроса выполняются следующие этапы:
из словесной формулировки запроса устанавливаются поля, которые нужно выбрать из базы данных.
определяются таблицы, которые содержат эти поля;
анализируются и корректируются связи между таблицами ;
определяются и устанавливаются условия отбора данных.
В соответствии с ними действия по разработке первого запроса будут выглядеть так:
В соответствии с формулировкой запроса требуются следующие данные: имя клиента и сумма оплаты. Они содержатся в полях «Организация» и «Сумма оплаты».
Эти поля содержатся в таблицах «Клиенты» и «Оплата» соответственно. В соответствии со схемой базы данных таблицы «Клиенты» и «Оплата» между собой непосредственно не связаны. Выборка данных полей из несвязанных таблиц даст абсурдный результат. Поэтому в запрос нужно включить связующую таблицу, которой, в соответствии со схемой является таблица «Заказ».
Связи между выбранными таблицами в запросе устанавливаются автоматически из схемы базы данных. Однако в этом запросе есть одна особенность: нужно найти не оплаченные заказы, то есть заказы, для которых в таблице «Оплата» нет ни одной записи. Чтобы проявить такие записи в СУБД Access есть режим связи между таблицами, в котором показываются все записи таблицы «Заказ», а для тех из них, для которых не существует соответствующих записей в таблице «Оплата» проставляются записи со значениями – «пусто» ( в СУБД Access значение «пусто» обозначается Null ).
Условием отбора являются записи, для которых значение поля «Сумма оплаты» пусто (Is Null).
В СУБД Access предусмотрены две формы создания запроса: на языке SQL и в виде запроса по образцу (QBE). Более простым для разработчика не профессионала способом является второй. Чтобы приступить к созданию запроса вторым способом, необходимо открыть вкладку «Запросы» и нажать кнопку «Создать». В открывшемся окне необходимо выбрать режим «Конструктор». В открывшихся окнах предлагается выбрать таблицы, в которых содержатся требуемые атрибуты. Для первого запроса необходимы таблицы «Клиенты», «Заказы» и «Оплата. В результате будет получена следующая форма запроса:
Для вызова окна параметров объединения щелкнуть правой клавишей мыши на связи между таблицами и в открывшемся окне выбрать «Параметры объединения».
Другой случай будет рассмотрен ниже. После того как запрос сформирован, можно просмотреть результат, нажав кнопку на панели инструментов. Результат запроса будет выглядеть примерно так:
Если необходимо выбрать клиентов оплативших заказ, то в строку «Условие отбора» поля «Сумма оплаты» нужно включить условие отбора « > 0 ». Тогда результат выполнения запроса будет следующим. Как видно из рисунка результат запроса показывает еще и за сколько приемов был оплачен заказ.
Здесь строка с заказом номер 3 и 4 повторяется два раза, так как оплата заказа была произведена за два приема, а не оплаченные заказы отсутствуют. Если запрос необходимо повторять в дальнейшем, то его лучше сохранить под каким либо именем.
Поскольку универсальным способом описания запросов является представление запроса на языке SQL, то перейти к SQL запросу можно нажав на панели инструментов кнопку . Для рассмотренного запроса SQL выражение выглядит так:
SELECT Клиенты.Организация, Заказ.[Номер заказа], Оплата.[Сумма оплаты]
FROM Клиенты INNER JOIN (Заказ LEFT JOIN Оплата ON Заказ.[Номер заказа] =
Оплата.[Номер заказа]) ON Клиенты.[Код клиента] = Заказ.[Код клиента]
WHERE (((Оплата.[Сумма оплаты]) Is Null));
Более серьезный и сложный анализ деятельности фирмы рассмотрен во втором запросе.