4.1. Создание запроса на выборку
С помощью запросов можно просматривать, анализировать и изменять данные из нескольких таблиц. Они используются в качестве источника данных для форм и отчетов. Запросы позволяют вычислять итоговые значения и выводить их в компактном формате, подобном формату электронной таблицы, а также выполнять вычисления над группами записей.
Запросы можно создавать самостоятельно и с помощью мастеров. Самостоятельно разработать запросы можно в режиме конструктора.
В Access можно создавать следующие типы запросов:
~ запрос на выборку;
~ запрос с параметрами (критерий отбора задает пользователь, введя нужный параметр при вызове запроса);
~ перекрестный запрос (позволяет создавать результирующие таблицы на основе результатов расчетов, полученных при анализе группы таблиц);
~ запрос на изменение (удаление, обновление и добавление) записей (позволяет автоматизировать заполнение полей таблиц);
~ запросы SQL (на объединение, к серверу, управляющие, подчиненные), написанные на языке запросов SQL.
Запрос на выборку используется наиболее часто. При его выполнении данные, удовлетворяющие условиям отбора, выбираются из одной или нескольких таблиц и выводятся в определенном порядке.
Для создания запроса следует перейти во вкладку «Запросы» в окне базы данных, выбрать кнопку «Создать» (рис. 4.1), затем вариант «Конструктор».
Рис. 4.1. Окно создания нового запроса
Следующее окно – «Добавление таблицы» используется для выбора таблицы, на основании которой создается запрос. Выбранную таблицу следует высветить курсором и нажать сначала на кнопку «Добавить», а потом «Закрыть» (рис. 4.2).
Рис. 4.2. Выбор таблицы – основы для запроса
Окно «Конструктора запросов» разделено на две части. В верхней части - список полей таблицы в виде небольшого прямоугольника, в нижней части формируется непосредственно запрос (рис. 4.3).
Рис. 4.3. Окно запроса в режиме Конструктора
Сначала определяют, какие поля нужны в запросе. Это могут быть просто информационные поля и поля поисковые. Например, Вас интересуют все сотрудники, чей оклад превышает, допустим, тысячу грн. Поисковым полем будет поле «Оклад». Но если при выполнении запроса появятся только цифры, вряд ли он будет достаточно информативен. Вот если добавить поле «Фамилии», то станет понятно, кому и сколько начисляет бухгалтерия. Это поле информационного типа.
Перенести нужные поля в нижнюю часть экрана можно двойным щелчком по их названию в прямоугольнике с названиями полей. При этом названия полей появляются в строке «Поле» и автоматически заполняется строка «Имя таблицы», фиксируя, из какой таблицы или запроса взято поле.
Если в третьей строке задана сортировка для данного поля, то найденные записи будут отсортированы в установленном порядке. Флажки в строке «Вывод на экране» означают те поля, информация по которым будет выведена на экран, после этого их можно просматривать, печатать и т.д. Если флажок не включен, поле участвует в конструировании запроса, но не выводится визуально.
Правила проектирования условий для отбора записей тесно связаны с типом полей.
Текстовые поля. Если известно все слово, его приводят полностью в строке «Условие отбора»; если часть, то используют шаблоны * и ? , первый заменяет любое количество символов, второй – один символ. Например, “Вас*” позволит найти в поле «Фамилия» людей с фамилией Васин, Васильев, Васисуалий, Васька и т.д.
Запись “М???ко” позволит найти в поле «Фамилия» людей с фамилией, начинающейся на букву М и заканчивающейся на –ко, при этом состоящей из 6 символов.
Для записи сложных критериев используются логические операции. Для нахождения цены на конфеты «Белочка» и «Коровка» в условии отбора используют IN и в скобках перечисляют требуемые наименования (рис. 4.4).
Рис. 4.4. Пример использования логической операции IN
Числовые поля. При записи условий используются знаки сравнения, логические операторы, символы шаблона.
>2 - больше 2; Больше 2 и меньше 20
>2 AND < 20
BETWEEN 2 AND 20 Другой вариант задания условия больше 2 и меньше 20.
<=3 - меньше или равно 3; Больше 2 и меньше 20
>=30 OR <>0 - больше или равно 30 или не равно 0
Поля типа «Дата/время». При составлении запросов с полями указанных типов при поиске конкретной даты, ее вводят в «Условие отбора», при запуске запроса автоматически появятся ограничивающие значки #, а для значения времени появятся и секунды. Условия отбора могут быть следующими: >01.01.05 AND <O1.04.05 - 1 квартал 2005 года; <>8.03.2006 - за исключением 8 марта 2006 года.
Для осуществления возможности многократного выполнения запроса при изменении условий отбора, необходимо в него добавить параметр. Чтобы определить параметр, в строку «Условие отбора» вводится имя или фраза, заключенные в квадратные скобки, как это показано на рис. 4.5.Рис. 4.5. Окно конструктора параметрического запроса
Для запуска на выполнение запроса выполняют команду «Запрос»/ «Запуск» или щелкают по кнопке на панели инструментов.
После этого появляется диалоговое окно, показанное на рис. 4.6. В окне вводят поисковый критерий, допустим слово «экономический» для поиска данных по экономическому факультету.Рис. 4.6. Диалоговое окно параметрического запроса
Для сохранения запроса выполнить команду «Файл»/«Сохранить запрос». Запросы можно использовать многократно, вызывая их по именам.