Таблицы базы данных
Для создания базы данных[1] используется определенный шаблон, например Новая база данных. База данных сохраняется как файл с расширением .accdb.
Таблицы создаются в режиме Создание с помощью панели инструментов Таблицы. Кнопка Конструктор таблиц выводит диалоговое окно для создания структуры записи каждой отдельной таблицы: ПРОДУКЦИЯ, РЕСУРС, НОРМА (см. табл. 10.4). В записи указывается первичный индекс (Primary) – ключ, состоящий из одного или нескольких полей. Ключ обладает свойствами: уникальный, пропуск пустых полей – нет. Могут задаваться вторичные (Secondary) ключи – неуникальные индексы. Индекс может включать до 10 полей.
Схема данных создается в режиме Работа с базой данных с помощью кнопки Схема данных. Схема содержит таблицы и запросы, между которыми установлены связи но внешним ключам, определены свойства их объединения (рис. 10.36).
Рис. 10.36. Схема базы данных
Экранные формы
Экранные формы (ЭФ) используются для просмотра и редактирования данных таблиц, создания кнопочных меню, задания параметров запросов и отчетов. ЭФ содержат программный код для элементов управления. Макет ЭФ состоит из Заголовка, Области данных и Примечания формы. В Заголовке формы располагаются надписи, служебная информация, в Примечании формы – вычисляются итоги по строкам формы области Данные. Можно выводить на печать ЭФ, добавляя верхний и нижний колонтитулы с указанием номера страниц, Даты, Времени и т.п. Разделы и элементы ЭФ допускают раздельное форматирование.
Однозаписная ЭФ
Технология создания однозаписной однотабличной ЭФ (рис. 10.37):
• Режим Создание, панель Формы, кнопка Другие формы, выбор – Мастер форм. Для таблицы ПРОДУКЦИЯ указать выбор всех полей, внешний вид – в один столбец, стиль – Аспект, имя ЭФ – ПРОДУКЦИЯ, действие – Изменить макет.
• Режим Конструктор, настройка свойств полей в Окне свойств:
• Настройка свойств полей в Окне свойств:
– поле Цена: свойство После обновления, процедура обработки событий:
Private Sub IieHa_продукции_AfterUpdate () Прибыль_на_единицу_продукции =
IIf(IsNull(Цена),0,Цена) –
IIf(IsNull(Накладные_расходы),0,Накладные_ расходы) –
IIf(IsNull(Себестоимость),0,Себестоимость) End Sub
– поле Накладные расходы, свойство После обновления, процедура обработки событий:
Private Sub Цена_продукции_А1terUpdate() Прибыль_на_единицу_продукции =
IIf(IsNull(Цена),0,Цена) –
IIf (IsNull(Накладные_расходы),0,Накладные_расходы) –
IIf(IsNull(Себестоимость),0,Себестоимость) End Sub
– поле Себестоимость; свойство Доступ – Нет, Блокировка – Да.
– поле Прибыль на единицу продукции: свойство Доступ – Нет, Блокировка – Да.
Рис. 10.37. Однозаписная однотабличная ЭФ
Многозаписная ЭФ
Технология создания многозаписной однотабличной ЭФ (рис. 10.38):
• Режим Создание, панель Формы, кнопка Другие формы, выбор – Мастер форм. Для таблицы РЕСУРС указать выбор всех полей, внешний вид – Ленточная, стиль – Аспект, имя ЭФ – РЕСУРС, действие – Изменить макет.
• Режим Конструктор.
• Настройка свойств полей в Окне свойств:
– вставить элемент управления Поле (ab) в Область данных, задать свойства: Данные: =[Цена ресурса] * [Запас], Доступ – Нет, Блокировка – Да, Формат поля – Денежный, 2 знака;
– вставить элемент управления Надпись (Аа) в Заголовок формы, задать свойство Подпись – Стоимость.
Рис. 10.38. Многозаписная однотабличная ЭФ
Для вычисления суммарного запаса материальных ресурсов необходимо:
– вставить элемент управления Поле (ab) в Примечание формы, задать свойства: Данные: =Sum (Ilf ( [Вид ресурса]="М";[Запас]*[Цена ресурса];0)), Доступ – Нет, Блокировка – Да, Переход по Tab – Нет, Формат поля – Денежный, 2 знака;
– для надписи вычисляемого поля установить значение для свойства Подпись – Стоимость запаса материальных ресурсов.
Для вычисления суммарного запаса ресурсов оборудования следует:
– вставить элемент управления Поле (ab) в Примечание формы, задать свойства: Данные/. =Sum (IIf([Вид ресурса]="0"; [Запас]*[Цена ресурса];0)), Доступ – Нет, Блокировка – Да, Переход по Tab – Нет, Формат поля – Денежный, 2 знака;
– для надписи вычисляемого поля устанавливаем для свойства значение Подпись – Стоимость запаса ресурсов оборудования.
Для вычисления суммарного запаса трудовых ресурсов требуется:
– вставить элемент управления Поле (ab) в Примечание формы, задать свойства: Данные: =Sum(IIf([Вид ресурса] ="Т"; [Запас] * [Цена ресурса];0)), Доступ – Нет, Блокировка – Да, Переход по Tab – Нет, Формат поля – Денежный, 2 знака;
– для надписи вычисляемого поля установить для свойства значение Подпись – Стоимость запаса трудовых ресурсов.
Для вычисления суммарного запаса всех видов ресурсов необходимо:
– вставить элемент управления Поле (ab) в Примечание формы, задать свойства: Данные: =Sum ( [Запас] * [Цена ресурса] ), Доступ – Нет, Блокировка – Да, Переход по Tab – Нет, Формат поля – Денежный, 2 знака;
– для надписи вычисляемого поля установить значение для свойства Подпись – Общая стоимость запаса ресурсов.
Многотабличная ЭФ сложной структуры
Многотабличные ЭФ сложной структуры (рис 10.39) создаются, как правило, для связанных таблиц, в их основе лежит запрос на выборку данных из нескольких таблиц (см. п. 10.4.3).
• Режим Создание, панель инструментов Формы, кнопка Другие формы, выбор – Мастер форм.
• Для таблицы ПРОДУКЦИЯ указать выбор всех полей.
• Для таблицы НОРМА указать выбор полей: Код ресурса, Единица нормирования, Норма расхода.
• Для таблицы РЕСУРС указать выбор полей: Наименование ресурса, Вид ресурса, Пена, Единица измерения.
Рис. 10.39. Многотабличная ЭФ сложной структуры
• Внешний вид – Ленточная, стиль – Аспект, имя ЭФ – Себестоимость продукции, действие – Изменить макет.
• Режим Конструктор, настройка элементов ЭФ:
– в Окне свойств для полей Наименование продукции, Единица измерения продукции, Цена продукции, Накладные расходы, Прибыль на единицу продукции, Себестоимость, Наименование ресурса, Единица измерения, Цена ресурса задать свойства: Доступ – Нет, Блокировка – Да, Переход по Tab – Нет;
– вставить элемент управления Поле (ab) в Примечание формы, задать свойства: Данные: =Sum ([Норма расхода]* *[Цена ресурса]/[Единица нормирования] ); Вывод на экран – Нет, Имя – Cost.
– для подчиненной формы НОРМА указать свойство – При выходе, Процедура обработки события:
Private Sub НОРМА_подчиненная_форма_Ехit (Cancel As Integer)
Себестоимость = НОРМА_подчиненная_форма! Cost
Прибыль_на_единицу_продукции =
IIf(IsNull(Цена),0, Цена) -
IIf(IsNull(Накладные_расходы),0, Накладные_расходы) –
IIf (IsNull(Себестоимость) , 0, Себестоимость)
End Sub