- •Цели и задачи курсового проектирования
- •Основные требования к курсовой работе.
- •Структура и содержание отчета по курсовой работе
- •Оформление курсовой работы
- •Список литературы
- •Методические указания к проектированию баз данных под управлением субд access Пример базы данных оптовой фирмы.
- •Этапы проектирования базы данных
- •Проектирование реляционной модели бд
- •1. Текстовый
- •10. Мастер подстановок
- •Создание структуры бд в среде субд access
- •Создание структуры таблиц
- •Объединение структур таблиц в единую схему
- •Проектирование приложения «Учет и анализ выполнения заказов»
- •Разработка форм ввода данных
- •Форма «Ввод справочника о товарах»
- •Форма «Ввод списка клиентов»
- •Форма «Ввод данных о заказе»
- •Описание создания формы «Ввод справочника о товарах»
- •Описание создания формы «Заказы»
- •Создание макета формы «Заказы»
- •Создание подчиненной формы «Спецификация»
- •Создание связанной формы «Оплата»
- •Продолжение создания формы «Заказы»
- •Создание кнопочных форм
- •Создание запросов
- •Разработка первого запроса
- •Разработка второго запроса
- •Создание третьего запроса.
- •Создание четвертого запроса
- •Проектирование отчетов
- •Расширение функциональности приложений
- •Построение формы по результатам запроса
- •После нажатия кнопки «ок» ссылка на поле будет перенесена в запрос, и конечный вид запроса будет выглядеть следующим образом.
- •Использование объектов в приложениях
- •Использование базы данных в сети
Создание связанной формы «Оплата»
Еще одной формой, которая необходима для формы «Заказы» является форма «Оплата», которая в режиме конструктора имеет вид:
Форма создается для таблицы «Оплата» и имеет следующие особенности:
Создать форму с помощью мастера для всех полей таблицы с внешним видом - ленточный;
Скрыть поле «Номер заказа» и удалить его надпись;
Автоматически сформировать «Номер заказа» перенеся его из формы «Заказы». Для этого в событии «До обновления» формы «Оплата» необходимо с помощью редактора создать процедуру обработки события следующего вида:
If Nz([Номер заказа]) = 0 Then
[Номер заказа] = Forms![Заказы]![Номер заказа]
End If
Эта процедура для каждой новой записи значению поля «Номер заказа» присваивает значение одноименного поля из формы «Заказы».
Закройте созданную форму с сохранением изменений.
Продолжение создания формы «Заказы»
После создания формы «Оплата» можно продолжить разработку формы «Заказы». В дополнение к уже созданным элементам формы необходимо:
Вставить подчиненную форму «Спецификация»;
Добавить кнопку «Новый», которая позволит создать запись для нового заказа, присвоив ему очередной номер и задав дату заказа равную текущей дате.
Добавить кнопку, вызывающую форму «Оплата» с отображением записей только для данного заказа;
Создать поле с итоговыми суммами по заказу.
Указанные действия выполняются следующим образом.
Вставка подчиненной формы:
На панели элементов выбрать соответствующую кнопку, т.е. на кнопке «Подчиненные формы» щелкнуть левой клавишей мыши, а затем при нажатой левой клавише выделить место под подчиненную форму в форме «Заказы». После этого запускается мастер построения подчиненных форм. Первым окном, которое появится на экране, будет:
Следующее окно позволяет установить связь между основной и подчиненной формами. Для этого нужно установить положение переключателей, как показано на рисунке.
Последнее окно запрашивает имя подчиненной формы. Здесь нужно просто нажать кнопку «Готово».
Создание кнопки «Новый»
При вставке в форму «Заказы» кнопки «Новый» необходимо вставить кнопку, как было описано выше, и выбрав категорию «Обработка записей» и действие «Добавить запись». В окне выбора формы кнопки необходимо включить переключатель «Текст» и ввести слово – Новый. Созданная кнопка позволяет добавлять новые записи в таблицу «Заказ». При создании кнопки СУБД автоматически добавляет в событие «Нажатие кнопки» процедуры обработки события следующего вида:
Private Sub Кнопка13_Click()
On Error GoTo Err_Кнопка13_Click
DoCmd.GoToRecord , , acNewRec
Exit_Кнопка13_Click:
Exit Sub
Err_Кнопка13_Click:
MsgBox Err.Description
Resume Exit_Кнопка13_Click
End Sub
Операторы On Error ,MsgBox Err.Description ,Resume являются операторами БЕЙСИКа и служат для организации обработки ошибок. Это стандартный набор операторов, создаваемый мастером построения кнопок. Оператор DoCmd.GoToRecord , , acNewRec осуществляет создание новой записи и переход к ней.
Однако в задачу кнопки входит также создание нового номера записи и занесение текущей даты в дату заказа. Поэтому в процедуру после оператора DoCmd.GoToRecord , , acNewRec необходимо добавить следующие операторы:
If Nz([Номер заказа]) = 0 Then
[Номер заказа] = Nz(DMax ( "[Номер заказа]" , "[Заказ]")) +1
[Дата заказа] = Date()
End If
DoCmd.GoToControl " ПолеСоСписком8"
Этим фрагментом программы в поле «Номер заказа», если он равен нулю или пуст, заносится максимальный код товара увеличенный на единицу; в поле «Дата заказа» заносится системная дата и последним оператором управление передается объекту «ПолеСоСписком8». Это поле со списком, которым мы заменили «Код клиента».
Заметим, что создание нового номера заказа аналогично созданию новых кода товара и кода клиента. Однако в соответствующих формах сначала создавалось несвязанное поле, где вычислялся новый код, а затем при возникновении события «До обновления» рассчитанный код помещался в соответствующее поле. Здесь же мы обошлись без создания поля, сразу рассчитав новый номер заказа и присвоив его полю «Номер заказа». Этот вариант гораздо проще. Вся процедура обработки события «Нажатие кнопки» вместе с добавленным фрагментом будет выглядеть так.
Private Sub Кнопка13_Click()
On Error GoTo Err_Кнопка13_Click
DoCmd.GoToRecord , , acNewRec
If Nz([Номер заказа]) = 0 Then
[Номер заказа] = Nz(DMax ( "[Номер заказа]" , "[Заказ]")) +1
[Дата заказа] = Date()
End If
DoCmd.GoToControl "ПолеСоСписком17"
Exit_Кнопка13_Click:
Exit Sub
Err_Кнопка13_Click:
MsgBox Err.Description
Resume Exit_Кнопка13_Click
End Sub
Создание кнопки оплата.
Следующим объектом, который нужно создать является кнопка «Оплата». Кнопка создается обычным путем. В появившейся серии окон нужно выбрать позиции, как показано на рисунках.
Окончание построения кнопки выполняется обычным путем.
Создание поля с итоговой суммой.
И последним объектом, который необходимо создать в форме «Заказы», является поле с итоговой суммой по заказу. В подчиненной форме «Спецификация» такое поле было построено как скрытое (имя поля «Поле15» ). Для того, чтобы показать значение этого поля в форме «Заказы», необходимо создать несвязное поле и в его свойстве «Данные» создать с помощью построителя выражений ссылку на соответствующее поле в форме «Спецификация» следующего вида:
Выражение [Спецификация].Form![Поле15] попадет в свойство «Данные» построенного поля, если при выборе подсвеченных позиций построителя выражений нажать кнопку «Вставить», а затем «ОК».
После сохранения форма «Заказы» готова к работе. Ее конечный вид должен быть примерно таким.
В результате всей предыдущей работы были созданы ряд форм для ввода данных в базу. Однако выбор и открытие этих форм из вкладки «Формы» не удобен для конечного пользователя. Необходимо создать организующую форму с удобным интерфейсом, которая позволила бы работать с набором форм, вызывая их с помощью кнопок. Для создания таких форм в ACCESS предусмотрен механизм создания кнопочных форм.