Таблицы базы данных

Для создания базы данных[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