5 Разработка форм заполнения данных
СуБД Access представляет собой возможность вводить данные как непосредственно в таблицу, так и с помощью форм. Формы – объект, в котором можно разместить элементы управления и изменения данных в полях таблицы. Форма в БД – это структурированное окно, которое можно представить так, чтобы оно повторяло форму бланка. Формы создаются из набора отдельных элементов управления.
5.1 Основные сведения
Внешний вид формы выбирается в зависимости от того, с какой целью она создается. Формы Access позволяют выполнять задания, которые нельзя выполнить в режиме таблицы. Формы позволяют вычислять значения и выводить на экран результат. Источником данных для формы являются записи таблицы или запроса.
Алгоритм создания форм следующий:
Открыть окно БД
В окне БД выбрать вкладку Формы
Щелкнуть на программе Создать, расположенной на панели инструментов окна БД
В появившемся диалоговом окне «Новая форма» выбрать способ создания формы и источник данных
Щелкнуть ОК
Порядок создания форм с помощью мастера
Вызвать Мастер форм можно несколькими способами. Один из них – выбрать Мастер форм в окне диалога Новая форма и щелкнуть на кнопке ОК. Откроется окно диалога Создания форм, в котором необходимо отвечать на вопросы каждого текущего экрана Мастера и щелкнуть на кнопке Далее.
В первом окне необходимо выбрать поля из источника данных (таблиц или запросов). Для этого надо открыть список Таблицы и запросы, щелкнув на кнопку, справа. Затем доступные поля требуется перевести в Выбранные поля, выделив их и щелкнув на кнопку >>.
Выбрать внешний вид формы, например в один столбец и щелкнуть Далее.
После выбора стиля формы, требуется перейти в последнее окно, щелкнув на кнопке Далее. В последнем окне Мастера требуется ввести имя формы и указать дальнейшие действия: Открыть форму для просмотра и ввода данных. Изменить макет формы.
5.2 Создание подчиненных форм данных
Подчиненная форма – форма, вставленная в другую форму (главную), в которой данные фильтруются в соответствии с данными в текущей записи главной формы.
Создаем в главной форме организации достаточно свободное пространство для подчиненной формы.
Отдельно создаем форму, которая будет вставлена в главную в качестве подчиненной.
Убедиться, что между таблицами, для которой созданы эти формы (главная, подчиненная), существует связь (первичный или внешний ключи).
Открыть главную форму в режиме конструктора, проверить нажатие кнопки «Мастер» на панели элементов. Вызвать команду подчинения форма, поместить ее в области данных главной формы.
Настроить подчиненную форму:
-режим по умолчанию (ленточная, одиночная, табличная);
-лишние не информативные поля можно удалить;
-последовательность перехода по полям и доступ к ним;
-границы.
Примеры созданных форм
Рисунок 5.1 – Основная форма «Ремонты»
Рисунок 5.2 – Подчиненная форма «Камеры коксования»
6 Создание запросов
Запрос – вопрос о данных, хранящихся в таблицах или инструкциях на отбор записей подлежащих изменению.
В реляционных СУБД для выполнения операций над отношениями используют две группы языков, в основе которых находятся теоретические языки запросов, предложенные Э.Коддом:
Реляционная алгебра (процедурные языки).
Реляционные исчисления (декларативные или непроцедурные языки).
В реляционной алгебре операнды и результаты всех действий являются отношениями. Отношения являются результатом запроса к реляционной базе данных, и вычисляются при выполнении последовательности реляционных аппаратов, применяемых к отношениям.
Языки исчислений позволяют выражать запрос в виде функций (выражения) имеющего четкую структуру и содержащего информацию желаемом результате. Для них характерно наличие четкого набора правил записи запросов.
Вариант реляционной алгебры, предложенной Коддом, включает в себя следующие основные операции:
Базовые (теоретико-множественные)
Объединение
Вычитание
Пересечение
Произведение
Специальные реляционные
Выборка
Проекция
Деление
Соединение
Существующие в СУБД Access типы запросов:
-выборка;
-изменение;
-с параметрами;
-SQL;
-перекрестный (для группирования данных).
6.1 Порядок создания запроса
Запросы создаются для выборки необходимых данных из одной или нескольких таблиц, для манипулирования данными (добавления, удаления записей, редактирования значений, полей, таблиц), а так же для создания таблиц и управления их структурами.
Типы запросов:
Запрос на выборку;
Запрос для создания таблиц;
Запрос на обновление, удаление, добавление – запросы действия, которые приводят к изменению данных.
Запросы на выборку на языке SQL имеют следующую структуру:
SELECT [Поле 1], [Поле 2], [Поле N]
FROM [Таблица]
WHERE [Условие 1] AND/OR [Условие 2]
ORDER BY [Поле сортировки 1] ASC/DESC, [Поле сортировки 2]
ASC/DESC.
SELECT – содержит перечисленные через запятую поля таблицы, которые будут выведены в результат запроса.
FROM – в данном блоке указывается из какой таблицы будет выполнена выборка данных.
Если выборка затрагивает несколько таблиц, то в этом же блоке с использованием ключевых слов «INNER JOIN», либо «LEFT OUTER JOIN»,
«RIGHT OUTER JOIN» указывается с каким полем связаны данные таблицы (с таблицы указанной после слова FROM).
WHERE – содержит условие отбора записей соединенных логическими операторами AND или OR.
Функций, используемые в групповых запросах:
Avg – среднее значение;
Min – минимальное значение;
Max – максимальное значение;
StDev – среднеквадратическое отклонение;
StDevPs - среднеквадратическое отклонение;
Var – возвращает статистическую дисперсию всех значений в указанном выражении;
Var Ps - возвращает статистическую дисперсию для заполнения всех значений указанном выражении;
Sum – сумма значений;
Count – количество записей результатов записей.
6.2 Выполнение индивидуального задания
Вывести в отчет информацию о температурах в отопительных каналах №1 и 32 для отопительного простенка №13, коксовой батареи №2.
Рисунок 6.1 – Конструкция запроса на выборку по заданию А.
Запрос по заданию на языке SQL:
SELECT [Коксовые батареи].КБ_Номер, Простенки.ПР_Номер, [Отопительные каналы].ОК_Номер, [Температурный режим].ТР_ТемпЗнач
FROM ([Коксовые батареи]
INNER JOIN Простенки ON [Коксовые батареи].КБ_Код = Простенки.КБ_Код)
INNER JOIN ([Отопительные каналы]
INNER JOIN [Температурный режим] ON [Отопительные каналы].ОК_Код = [Температурный режим].ОК_Код) ON Простенки.ПР_Код = [Отопительные каналы].ПР_Код
WHERE ((([Коксовые батареи].КБ_Номер)="2") AND ((Простенки.ПР_Номер)=13) AND (([Отопительные каналы].ОК_Номер)=1 Or ([Отопительные каналы].ОК_Номер)=32));
Для полученной выборки, используя запрос с групповыми операциями, определить минимальное значение температур.
Рисунок 6.2 – Конструкция запроса по заданию Б.
Запрос по заданию Б на языке SQL:
SELECT Min([Температурный режим].ТР_ТемпЗнач) AS [Min-ТР_ТемпЗнач]
FROM ([Коксовые батареи]
INNER JOIN Простенки ON [Коксовые батареи].КБ_Код = Простенки.КБ_Код) INNER JOIN ([Отопительные каналы]
INNER JOIN [Температурный режим] ON [Отопительные каналы].ОК_Код = [Температурный режим].ОК_Код) ON Простенки.ПР_Код = [Отопительные каналы].ПР_Код
WHERE ((([Коксовые батареи].КБ_Номер)="2") AND ((Простенки.ПР_Номер)=13) AND (([Отопительные каналы].ОК_Номер)=1 Or ([Отопительные каналы].ОК_Номер)=32));
