- •Методические указания по проектированию учебной базы данных и приложений к ней
- •Цели и задачи курсового проектирования
- •Основные требования к курсовой работе.
- •Структура и содержание отчета по курсовой работе
- •Оформление курсовой работы
- •Список литературы
- •Методические указания к проектированию баз данных под управлением субд access Пример базы данных оптовой фирмы.
- •Этапы проектирования базы данных
- •Проектирование реляционной модели бд
- •8. Поле объекта ole
- •9. Гиперссылка
- •10. Мастер подстановок
- •Создание базы данных в среде субд access
- •Создание структуры таблиц
- •Объединение структур таблиц в единую схему
- •Проектирование приложения «Учет и анализ выполнения заказов»
- •Разработка форм ввода данных
- •Описание создания формы «Ввод справочника о товарах»
- •Описание создания формы «Заказы»
- •Создание макета формы «Заказы»
- •Создание подчиненной формы «Спецификация»
- •Создание связанной формы «Оплата»
- •Продолжение создания формы «Заказ»
- •Создание кнопочных форм
- •Создание запросов
- •Разработка первого запроса
- •Разработка второго запроса
- •Создание третьего запроса.
- •Создание четвертого запроса
- •Проектирование отчетов
- •Расширение функциональности приложений
- •Построение формы по результатам запроса
- •Использование объектов в приложениях
- •Использование базы данных в сети
Расширение функциональности приложений
Разработанное приложение может дополняться различными запросами и формами по мере изменения требований к функциональности приложения. Рассмотрим три возможных изменения приложения:
При создании третьего запроса - «Какие организации заказали тот или иной товар и сколько?» был выявлен недостаток: этим запросом очень неудобно пользоваться, так как для его реализации необходимо помнить точные наименования товаров. Устранить его достаточно просто, создав форму на основе запроса.
Помимо рассмотренных выше типов данных, используемых в базе (числовые, символьные, даты), база данных СУБД Access позволяет хранить такие объекты как текстовые файлы, таблицы Excel, рисунки, картинки и т.д. Это могут быть документы относящиеся к заказу, расчеты связанные с заказом, изображения продукции. Для демонстрации этих возможностей создадим соответствующее поле в таблице «Заказы» и создадим объект в форме «Заказы».
Особенностью СУБД Access является то, что в одном файле хранится и база данных и приложение. Для одного пользователя работающего с базой это не представляет проблемы. Однако если проектируется многопользовательская система, то базу необходимо отделить от приложения. Это достаточно просто сделать. Тогда схема работы с базой будет выглядеть следующим образом. При наличии локальной сети mdb файл с базой данных устанавливается на один из компьютеров сети, который выполняет роль сервера, а установленные на других компьютерах приложения подключаются к базе данных.
Описанные дополнения будут подробно рассмотрены ниже. В связи с переходом на Office 2007 далее примеры панелей инструментов будут браться из этой версии.
Построение формы по результатам запроса
Одним из вариантов создания такой формы может быть выполнение действий в следующей последовательности. Напомним, на рисунках показаны панели инструментов Access 2007. Вначале создается макет пустой формы. Для этого в закладке «Создание» следует нажать кнопку «Конструктор форм». Появившуюся пустую форму необходимо настроить следующим образом. Добавить заголовок и примечание формы, нажав кнопку «Заголовок» в закладке «Конструктор», в свойствах формы установить следующую позицию макета: Режим по умолчанию в «Ленточные формы», Полученная форма и её свойства представлены на последующих двух рисунках .
Теперь в форму можно добавить заголовок и поле со списком товаров. Создание поля со списком описано в разделе Создание подчиненной формы «Спецификация». В результате должна получиться заготовка проектируемой формы следующего вида.
Сохраните эту форму задав ей имя, например, «Товары в заказах» . Затем откройте её снова в режиме конструктора.
Как отмечалось, содержимое формы базируется на данных таблиц базы или запросов. Данные в проектируемую форму поставляются запросом, который сформулирован в начале раздела и описан в разделе Создание третьего запроса. Но теперь запрос нужно создать как источник данных для формы. Для этого нужно в свойствах на уровне формы выбрать вкладку «Данные» и в позиции «Источник записей» нажать кнопку построителя запросов ( ). В отличие от ранее описанного запроса в условии отбора нужно сослаться на поле со списком. В примере это ПолеСоСписком0. При создании условия отбора необходимо учесть, что поле со списком возвращает не наименование, а код товара. Поэтому условие отбора надо ставить в поле «Код_товара» запроса. Ссылка в условии отбора по коду товара создаётся следующим образом. Курсор устанавливается в позицию «Условие отбора» для поля «Код_товара» и нажимается кнопка «Построитель» конструктора. После появление окна построителя выражений, надо установить ссылку на ПолеСоСписком0 формы как показано на рисунке.
После нажатия кнопки «ОК» ссылка на поле будет перенесена в запрос, и конечный вид запроса будет выглядеть следующим образом.
Теперь нужно закрыть запрос и согласиться на сохранение изменений в появившемся окне.
Далее в форму нужно перенести поля формируемые запросом. Для этого в панели инструментов конструктора нужно нажать кнопку «Добавить поля» и из появившегося списка полей в раздел формы «Область данных» перетащить требуемые в запросе поля. В результате форма в режиме конструктора примет следующий вид.
В заголовок формы добавлены надписи столбцов, кроме того из запроса перенесены данные об организации, номере заказа и количестве товара. Остальные поля в форму не включены так как код товара пользователю не нужен, а наименование иже есть в поле со списком. Запустив просмотр формы можно обнаружить следующие неприятности. При выборе в поле со списком товара данные запроса в форме не появляются. Кроме того, поскольку форма ленточная, последняя строка открыта для ввода данных, что вызывает попытки у неопытных пользователей добавить строки в результаты запроса. Первый из недостатков устраняется путем добавления в событие «После обновления» поля со списком (ПолеСоСписком0) кода вызывающего обновления данных:
DoCmd.Requery
Вместе с заголовком процедуры обработки события фрагмент кода дожжен выглядеть так:
Private Sub ПолеСоСписком0_AfterUpdate()
DoCmd.Requery
End Sub
Второй недостаток ликвидируется установкой свойства «Разрешить добавления» в закладке «Данные» свойств формы в состояние «Нет».
Итоговый вид получившейся формы выглядит так.