Запросы, выборка
Запросы, так же, как и фильтры, служат для отбора записей по заданным критериям. Но в отличие от инструмента "Фильтр" запрос – это компонент БД, допускающий многократное использование. Запросы удобно использовать для объединения или выполнения действий над данными, расположенными в нескольких таблицах или запросах.
Запросы обеспечивают доступ сразу к множеству полей и записей одной и более таблиц, отображают данные в заданном порядке, а также производят вычисления с использованием отобранных записей.
Исходными компонентами для проектирования запросов могут служить таблицы, уже существующие запросы или те и другие одновременно.
Запрос – объект базы данных, который используется для извлечения нужной информации из одной или нескольких таблиц базы данных или для выполнения определенных действий с данными.
При выполнении запроса MS Access создает набор записей, содержащий выбранные данные. Этот набор называется выборкой или динамической таблицей.
Выборка (динамическая таблица) – представленный на экране результат выполнения запроса.
С выборкой можно работать так же, как с таблицей – просматривать, печатать, обновлять данные. Однако этот набор записей, в отличие от реальных таблиц, не существует в базе данных. MS Access создает его из данных таблиц и других запросов только во время выполнения определенного запроса. При изменении данных выборки Access вносит соответствующие изменения в таблицы, на базе которых построен запрос. Таким образом, выборка представляет собой динамическое множество записей данных, которое постоянно обновляется. Удаленные из таблиц базы данных записи не будут появляться в выборке, новые же записи будут добавлены. Любые изменения записей выборки отражаются на состоянии соответствующих записей таблиц базы данных и наоборот.
По способу формирования запросы можно разделить на два вида:
запросы по образцу или QBE-запросы (Query By Example), при создании которых необходимо указать параметры запроса в окне Конструктора, задавая образцы для поиска информации;
структурированные запросы или SQL-запросы (Structured Query Language - язык структурированных запросов), для создания которых необходимо описать запрос с помощью языка запросов SQL, используя специальные команды и функции. Таким образом, SQL-запрос представляет собой последовательность команд, выражений и функций.
В действительности же любой запрос в MS Access реализуется с помощью языка SQL. И хотя большинство запросов можно создавать, используя возможности запроса по образцу, даже в этом случае каждый созданный запрос хранится в виде инструкции SQL. При создании запроса по образцу MS Access автоматически формирует соответствующую инструкцию SQL. Можно просмотреть инструкцию SQL для существующего запроса и внести в нее изменения. В этом случае автоматически будет обновляться определение соответствующего запроса по образцу в режиме конструктора.
Запросы можно классифицировать не только по способу формирования, но и по результатам их действий и особенностям выполнения. При таком подходе можно выделить:
запросы на выборку (простые запросы), используемые для того, чтобы отобрать и представить в удобном виде интересующие данные из одной или нескольких таблиц;
параметрические запросы (или запросы с параметрами), которые позволяют задавать конкретные условия отбора непосредственно при выполнении запроса;
перекрестные запросы, которые позволяют провести группировку и вычисления, а также представить данные в компактном виде, напоминающем электронную таблицу;
запросы на изменение, которые позволяют изменять таблицы базы данных - обновлять их, дополнять новыми записями, удалять некоторые записи. Они могут использоваться для создания новых реальных таблиц, которые, в отличие от обычных выборок, в дальнейшем существуют уже независимо от тех таблиц базы данных, которые были использованы для их построения.
Существует четыре типа запросов на изменение: запросы на удаление, обновление, добавление и создание таблицы.
Запрос на удаление удаляет группу записей из одной или нескольких таблиц. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.
Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц.
Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц.
Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Access или при создания архивной таблицы, содержащей старые записи.
Запрос на выборку можно использовать не только для того, чтобы выбирать из таблиц базы данных содержащуюся в них информацию. В запросе на выборку Access позволяет также производить вычисления и отображать результаты вычислений в динамической таблице. Например, можно найти сумму или среднее по значениям какого-либо поля, перемножить значения двух полей или объединить содержимое нескольких полей исходной таблицы в одно выходное поле.
Следует иметь в виду, что результаты вычислений не сохраняются в таблицах базы данных. При выполнении запроса вычисления выполняются всякий раз заново, поэтому результаты всегда отражают текущее состояние базы данных.
Для выполнения вычислений в запросе необходимо в бланке запроса создать новое вычисляемое поле. Для этого следует в пустую ячейку строки Поле ввести вычисляемое выражение, в котором могут использоваться поля таблиц, константы и функции, связанные с помощью арифметических операторов.
Таким образом, вычисляемое поле – поле, определенное в запросе для вывода результата вычисления выражения (а не для сохранения данных).
Для изменения порядка вычислений и группировки данных в выражениях используются круглые скобки, а имена полей таблицы должны быть заключены в квадратные скобки.
Для построения запроса в Access могут быть использованы мастер запросов или конструктор запросов.
Конструктор запросов позволяет создавать новые и изменять существующие запросы, поэтому он является основным способом при создании запросов QBE.
При создании запросов в режиме Конструктора открывается специальный бланк, называемый бланком запросов по образцу. Этот бланк состоит из двух, областей. В верхней части отображаются структуры таблиц, к которым адресован запрос, а нижняя часть представляет собой таблицу описания запроса, которая имеет 5 основных строк. Количество столбцов в запросе определяется количеством выбранных полей, которые будут использованы в запросе.
Назначение строк в бланке Конструктора запросов:
1 -я строка - Поле - для ввода имени поля запроса и обозначения поля — источника данных или вычисляемого выражения;
2-я строка - Имя таблицы - предназначена для задания имени таблицы — источника данных;
3-я строка - Сортировка - предназначена для указания порядка сортировки в данном поле. Может принимать следующие значения: по возрастанию, по убыванию, отсутствует;
4-я строка - Вывод на экран - содержит флажок, указывающий на то, будет ли выводиться соответствующее значение поля;
5 -я строка и др. - Условие отбора - содержит критерий, по которому будет происходить отбор записей в результирующую таблицу.
Мастер запросов позволяет создавать следующие виды запросов:
простой запрос (выборка из определенных полей)
перекрестный запрос
повторяющиеся записи (поиск повторяющихся записей)
запрос без подчиненных (поиск записей, которым не соответствует ни одна запись в подчиненной таблице)
ФОРМЫ
Представление данных в виде формы позволяет отобразить данные в самом различном виде, удобном для просмотра и ввода информации, например, в виде стандартного бухгалтерского бланка или объединёнными в группы и т.п. Формы являются основой разработки диалоговых приложений.
Источником данных для формы являются записи таблицы или запроса.
Через форму можно загружать данные во взаимосвязанные таблицы базы данных с документов-источников, добавлять и удалять записи в таблицах, изменять значения в полях, получать расчетные данные. Формы обеспечивают также просмотр графических объектов, хранящихся в полях типа OLE (в таблицах это невозможно).
В Access возможна разработка форм различных типов и представлений, в том числе диаграмм и сводных таблиц. Интересна возможность создания многотабличных (составных) форм. В такой форме, если исходные компоненты связаны отношениями, создаются подчинённые формы, когда возможен переход по записям как главной, так и подчинённой формы.
С оздание форм может быть выполнено различными способами:
инструмент Форма
Разделенная форма
Форма с отображением нескольких записей
Мастер форм (автосоздание формы на основании указанных полей и их форматов)
В режиме Макета
В режиме Конструктора.
Первые три способа создают формы, отображающие все поля только одной записи таблицы (Форма), одновременно отображать данные в двух представлениях — в режиме формы и в режиме таблицы (Разделенная форма) и сразу несколько записей таблицы (Несколько элементов).
Создание форм возможно с использованием Мастера форм, автоматически создающего ряд стандартных форм (колоночную, ленточную, табличную и т.д.), или с использованием Конструктора форм, позволяющего спроектировать форму любой сложности и наиболее удобную для конечного пользователя. Весьма плодотворным также оказывается комбинированный подход: сначала используется соответствующий мастер, а затем полученная форма дополнительно дорабатывается в "ручном режиме".
Процесс создания формы состоит в размещении объектов и определении для них свойств, связанных с объектами событий и выполняемых действий. В форму могут быть введены вычисляемые элементы управления и вычисляемые поля для определения данных, которые не могут быть извлечены непосредственно из таблицы или запроса. Для этого используется, как правило, "Построитель выражений", хотя нужное выражение можно ввести и вручную (так же, как и при проектировании запросов).
Готовая форма обычно может быть представлена в режимах формы, макета и конструктора (Главная – Режимы…).
Режим формы позволяет отображать данные и вводить новые.
В режиме макета можно внести изменения в структуру формы при одновременном отображении данных
Режим конструктора позволяет более подробно просмотреть и изменить структуру формы. Можно просматривать разделы колонтитулов, заголовка, примечания и данных формы. В этом режиме форма не выполняется, поэтому при внесении изменений невозможно просматривать базовые данные.