Сортировка и фильтрация довольно частые в работе с таблицами операции, и программа Access позволяет их выполнять достаточно просто и быстро



Сторінка9/9
Дата конвертації16.04.2016
Розмір0.53 Mb.
1   2   3   4   5   6   7   8   9

Запуск параметрических запросов


Создание запросов – это задача класса «сделал и забыл». Это значит, что как только созданный запрос вернул корректный динамический набор данных, больше не надо заботиться о его конструкции. Данные в наборе данных изменяются по мере добавления, удаления и изменения записей в рассматриваемой таблице, но сам запрос остается статичным.

Однако на практике возникают ситуации, когда запрос должен регулярно подвергаться определенным изменениям. Для этих целей используются параметрические запросы.

В качестве параметра должны выступать только константы (строчные, числовые, логические, а также константы даты и времени). В качестве параметра нельзя задавать выражение.

Создание простого параметрического запроса


Для создания простого параметрического запроса нужно выполнить следующие действия:

  1. Создать новый запрос и добавить в него все таблицы, с которыми надо работать.

  2. Перетянуть в сетку конструктора все поля, которые будут использованы в запросе.

  3. В строке Условие отбора нужного поля ввести текст, который должен выводиться при запросе параметра. Этот текст должен быть обрамлен в квадратные скобки. К примеру, если надо запросить фамилию для отбора по ней данных из таблицы, ввести в эту ячейку следующее:

[Введите фамилию сотрудника:]

  1. Установить критерии и прочие элементы запроса для остальных полей.

На рис. 18 показан запрос, использующий таблицу Заказы. В строке критерия по полю Покупатель задан следующий запрос:

[Введите имя покупателя]

После запуска этого запроса на выполнение программа откроет диалоговое окно ввода параметров запроса (рис. 19). Текст в данном окне в точности совпадает с введенным в поле Условие отбора (за вычетом квадратных скобок).





Рис. 18. В этом запросе запрашивается параметр, который

будет использоваться в качестве критерия





Рис. 19. При запуске параметрического запроса

открывается окно ввода параметров


В текстовом поле окна параметров следует ввести значение, которое должно быть использовано в качестве критерия, и щелкнуть на кнопке ОК. (Если щелкнуть на кнопке Отмена, программа отменит запуск запроса и вернется в окно конструктора).

В одном запросе можно определить несколько параметров. Для каждого из них при запуске запроса на выполнение программой будет открываться отдельное окно ввода.


Задание типа данных для параметра


По умолчанию программа Access подразумевает, что значения параметров будут вводиться как текст. Если же для параметра надо использовать другой тип данных, нужно это указать программе явным образом.

  1. Если в запросе уже существует текст, отображаемый в окне ввода параметров, щелкнуть на соответствующей ячейке Условие отбора и скопировать этот текст (за вычетом квадратных скобок).

  2. Выбрать в меню команду Запросы – Параметры. Откроется диалоговое окно определения параметров запроса.

  3. Ввести текст запроса параметров (без квадратных скобок) в первом доступном текстовом поле в столбце Параметр (рис. 20).




Рис. 20. Определение типа данных параметра


  1. В списке Тип данных соответствующей строки таблицы выбрать тип данных, который будет использоваться этим параметром.

  2. Повторить действия 3-4 для всех остальных параметров запроса.

  3. Щелкнуть на кнопке ОК.

Запуск запросов действия


Все предыдущие запросы были запросами отбора записей (типа SELECT). В этих запросах используются критерии, на основе соответствия которым программа формирует из записей таблиц динамический набор данных. Кроме запросов отбора в программе Access существуют и другие типы запросов, выполняющие операции над данными (их изменение, удаление и вставку, а также запись данных некоторой таблицы в новую). Такие запросы называют запросами действия.

Изменение данных таблицы с помощью запроса обновления


Подобно другим программам, программа Access имеет команду меню Заменить, позволяющую подставить вместо одного фрагмента текста другой либо в пределах всей таблицы, либо в пределах некоторого диапазона записей. Хотя этой командой довольно удобно пользоваться, существует ряд задач, для которых она не подходит. Предположим, что нужно заменить содержание некоторого поля новым значением, но только в тех записях, которые удовлетворяют заданному критерию. Или нужно опустить все цены в прайс-листе на 5%.

Именно для таких задач и предназначен более сложный инструмент – запрос обновления. Подобно запросу отбора, отображающему некоторое подмножество данных таблицы, запрос обновления вносит изменения в эти данные. Идея заключается в том, что выбирается поле, с которым будет производиться работа, задается для него новое значение, при необходимости вводится некоторый критерий, после чего запрос запускается на выполнение. Программа Access проходит по всем записям таблицы и изменяет значения выбранных полей в записях, отобранных согласно введенному критерию.

Запросы на обновление могут сэкономить массу времени, но могут привести и к потере данных. После того как запрос обновления отработал, в программе Access невозможно отменить эту операцию. Исходя из этого, всегда следует начинать с запуска на выполнение запроса отбора, чтобы убедиться в правильности ввода критериев. Если данные таблицы имеют особую ценность, перед запуском запроса обновления создать временную резервную копию таблицы. (Для копирования таблицы щелкнуть в окне базы данных и нажать последовательно комбинации клавиш и . В диалоговом окне Вставить как ввести имя временной таблицы, и проверить, установлены ли флажки в полях Структура и Данные. Если это так, щелкнуть на кнопке ОК.)

Для создания и запуска запроса обновления нужно выполнить следующие действия:



  1. Создать запрос отбора, включающего поле (или поля), значения которых будут изменяться, а также поля, по которым будут установлены критерии отбора записей. (В запросах обновления критерии не обязательны. Если они не будут введены в конструкторе, программа внесет изменения во все записи таблицы.)

  2. После формирования запроса отбора запустить его на выполнение, чтобы убедиться в его корректной работе.

  3. Преобразовать запрос в Тип запроса обновления. Для этого выбрать в меню команду Запрос – Обновление. (В качестве альтернативного действия можно выбрать в списке Тип запроса панели инструментов позицию Обновление.) Программа изменит заголовок окна запроса, удалит строки Сортировка и Вывод на экран и добавить строку Обновление..

  4. В ячейке Обновление изменяемого поля ввести его новое значение.

  5. Запустить запрос на выполнение. Программа предварительно откроет окно подтверждения выполнения, сообщающее количество записей, которые отобраны запросом для изменения.

  6. Для подтверждения изменения данных щелкнуть на кнопке Да.

К примеру, одной из самых распространенных задач является периодическое изменение цен прайс-листа. Если список товаров достаточно велик, ручное выполнение этой задачи отбирает массу времени и усилий, не гарантируя отсутствия ошибок и опечаток. В то же время выполнение изменения цен прайс-листа на заданный процент с помощью запроса обновления полностью избавляет от ручного труда.

Предположим, что в таблице товаров требуется поднять все цены (поле Цена) на 5%. Чтобы выполнить эту задачу с помощью запроса обновления, нужно добавить на панель конструктора поле Цена и ввести в ячейку Обновление следующее выражение:



[Цена] * 1.05

Это выражение указывает программе на необходимость увеличить значения поля Цена во всех записях таблицы на 5%. Чтобы повысить цены только определенного подмножества товаров, в запросе обновления можно применить некоторый критерий отбора.



Удаление записей таблицы с помощью запроса удаления


Если из таблицы нужно удалить одну или несколько записей, можно их выделить в таблице и выбрать команду меню Правка – Удалить запись. Но если количество записей, подлежащих удалению, весьма велико, можно воспользоваться запросом удаления. Для примера предположим, что таблицу заказов нужно обновить, т.е. удалить все достаточно старые заказы (выполненные до заданной даты). Или нужно удалить информацию о товарах, которые сняты с производства. В обоих приведенных примерах для идентификации группы записей, подлежащих удалению, нужно установить критерий. После ввода критерия в запрос удаления программа удалит из таблицы все удовлетворяющие ему записи.

Для создания и запуска запроса удаления следует выполнить следующие действия:



  1. Создать запрос отбора, включающий специальное поле «звездочка» (соответствующее всем полям таблицы), а также поля, по которым будут установлены критерии удаления записей.

  2. Ввести критерии отбора и запустить запрос отбора на выполнение, чтобы убедиться в его корректной работе.

  3. Преобразовать запрос в тип запроса удаления. Для этого надо выбрать в меню команду Запрос - Удаление. (В качестве альтернативного действия можно выбрать в списке Тип запроса панели инструментов позицию Удаление.) Программа изменит заголовок окна запроса, удалит строки Сортировка и Вывод на экран и добавит строку Удаление. В столбце поля «звездочка» в строке Удаление будет отображено слово Из, а во всех столбцах полей критериев – слово Где.

  4. Запустить запрос на выполнение. Программа выполнит анализ критерия и откроет окно подтверждения выполнения, сообщающее количество записей, которые отобраны запросом для удаления.

  5. Для подтверждения удаления щелкнуть на кнопке Да.

Кроме всего прочего, запрос удаления гораздо опаснее запроса на изменение данных, поскольку удаленные записи навсегда уходят в мир иной и ничто их не сможет воскресить. Надо предварительно выполнить на заданном критерии запрос отбора, во избежание случайного удаления нужной информации. (Перед операцией удаления сделать временную резервную копию таблицы, особенно если в ней содержатся критичные данные.)

Построение новых таблиц с помощью запроса создания


Результаты выполнения запроса отбора называют динамическим набором данных по той причине, что они и есть динамические подмножества данных таблицы. Под термином «динамический» подразумевается тот факт, что любые изменения, выполняемые над записями результата запроса, автоматически отображаются на соответствующих записях исходной таблицы; и наоборот, при изменении записей таблицы автоматически изменяются и соответствующие им записи набора данных.

Такой механизм работы удовлетворяет пользователя, так как он всегда знает, что работает с самой свежей информацией. Тем не менее, случаются ситуации, когда такой режим мешает работе. Например, в конце квартала или фискального года иногда требуется «заморозить» некоторые таблицы, чтобы рассчитать данные для соответствующих отчетов (особенно это касается таблиц, содержащих движения товаров и денежных средств).

Вместо того, чтобы останавливать работу всего предприятия до момента завершения формирования отчетности, программа Access предлагает создавать новые таблицы на основе уже существующих. После этого новые таблицы можно использовать для написания отчетов и прочей аналитической работы, а с исходными таблицами работа может продолжаться в обычном режиме. Все эти операции выполняются запросами создания таблиц.

Для создания и запуска запроса создания таблицы следует выполнить следующие действия:



  1. Создать запрос отбора, включающий в себя все поля, которые нужны в новой таблице, а также поля, которые будут использованы в критериях. (В запросах создания таблиц критерии не обязательны. Если они не введены, в новую таблицу будут скопированы все записи старой.)

  2. После того как запрос отбора сформирован, запустить его на выполнение и убедиться, что критерии работают корректно.

  3. Преобразовать запрос в тип запроса создания таблицы. Для этого нужно выбрать в меню команду Запрос-Создание таблицы. (В качестве альтернативного действия можно выбрать в списке Тип запроса панели инструментов позицию Создание таблицы.) Программа откроет диалоговое окно, показанное на рис. 21.



Рис. 21. Для определения новой таблицы используют

диалоговое окно Создать таблицу



  1. В поле Имя таблицы ввести название создаваемой таблицы.

  2. Для создания новой таблицы в одной базе данных со старой установить переключатель в положение Текущая база данных. Если же требуется добавить новую таблицу в некоторую внешнюю базу данных, установить переключатель в положение Другая база данных и ввести полный путь к ней в поле Имя файла.

  3. Щелкнуть на кнопке ОК.

  4. Запустить запрос на выполнение. Программа откроет окно подтверждения выполнения запроса, сообщающее количество записей, которые будут добавлены в новую таблицу.

  5. Для подтверждения выполнения запроса щелкнуть на кнопке Да.



Добавление записей в таблицу с помощью запроса добавления


Вместо формирования полностью новой таблицы можно добавить в новую таблицу определенные записи из старой. Эта операция осуществляется с помощью запроса добавления.

Для создания и запуска на выполнение запроса добавления нужно выполнить следующие действия:



  1. Создать запрос отбора, содержащий все поля, которые надо включать в добавляемые записи, а также поля, которые будут использованы в критериях. (В запросах добавления критерии не обязательны. Если они не введены, в другую таблицу будут скопированы все записи исходной).

  2. После того как запрос отбора сформирован, запустить его на выполнение и убедиться, что введенные критерии работают корректно.

  3. Преобразовать запрос в тип запроса добавления. Для этого выбрать в меню команду Запрос-Добавление. (В качестве альтернативного действия можно выбрать в списке Тип запроса панели инструментов позицию Добавление).

  4. В поле Имя таблицы ввести название таблицы, в которую будут добавляться записи.

  5. Если другая таблица находится в одной базе данных с исходной, установить переключатель в положение Текущая база данных. Если же она находится в некоторой внешней базе данных, установить переключатель в положение Другая база данных и ввести полный путь к ней в поле Имя файла.

  6. Щелкнуть на кнопке ОК. В окне конструктора добавиться новая строка с названием Добавление.

  7. В строке Добавление для каждого поля исходной таблицы выбрать соответствующее название поля второй таблицы, в которое будут переноситься данные.

Если на панель конструктора добавляется специальное поле «звездочка», в его строке Добавить в отображается название таблицы назначения. В этом случае, если в сетку конструктора добавляются некоторые поля с целью формирования критерия, следует убедиться, что ячейка в строке Добавить пуста.

  1. Запустить запрос на выполнение. Программа откроет окно подтверждения выполнения запроса, сообщающее количество записей, которые будут добавлены в новую таблицу.

  2. Для подтверждения выполнения запроса щелкнуть на кнопке Да.



Обзор запросов на языке SQL


Когда строятся запросы в программе Access, на самом деле создаются инструкции на языке SQL (Structured Query Language, или Структурированный язык запросов). Другими словами, окно конструктора запросов является всего лишь интерфейсом, который помогает создавать эти инструкции, не имея даже представления о синтаксисе языка SQL.

Для решения большинства задач, возникающих на практике, обычно используются конструктор запросов, а также мастер запросов, предлагаемые программой Access. Таким образом, большинству пользователей совершенно не обязательно утруждать себя изучением этого языка. Тем не менее, существует ряд аспектов запросов, которые трудно реализуемы или даже невозможны без написания или редактирования самих конструкций SQL. К примеру, часто возникает потребность включать результаты одного запроса в качестве таблицы в конструкцию другого запроса. В этом случае вместо сложных операций создания общего запроса возможно включение динамического набора данных в качестве подзапроса непосредственно во второй запрос. И эту операцию нельзя выполнить иначе, кроме как с помощью написания инструкции на языке SQL. К тому же некоторые запросы по неравенству требуют изменения сгенерированных программой запросов SQL. SQL является средством разрешения проблем и поиска ошибок, если созданный запрос возвращает не тот результат, который ожидался.

Для просмотра сгенерированного программой запроса SQL нужно выбрать в меню команду Вид – Режим SQL или раскрыть список кнопки Вид панели инструментов и выбрать в нем пункт Режим SQL. Редактирование запроса SQL приводит к изменению его отображения в конструкторе запросов, а любые изменения в конструкторе приводят к изменению самой инструкции SQL.

В Access имеется три типа запросов, которые не могут быть созданы в режиме конструктора запроса:



  • запрос к серверу – передает SQL-инструкции непосредственно в базу данных ODBC с использованием синтаксиса SQL-команд сервера;

  • запрос на объединения – объединяет поля одной или нескольких таблиц или запросов в один результирующий набор записей;

  • управляющий запрос – создает или изменяет таблицы базы данных или создает индексы в базе данных Access.

Для них необходимо создавать инструкции SQL непосредственно в окно запроса в режиме SQL. Для подчиненного запроса пользователь должен ввести инструкцию SQL в строку Поле или Условие отбора в бланке запроса.

Заключение


Запросы – наиболее эффективный механизм получения актуальной информации из базы данных. В качестве источника данных для запросов могут служить таблицы и другие запросы. Программа Access поддерживает следующие типы запросов: запрос на выборку, запрос на изменение (на обновление, удаление, добавление записей и на создание новой таблицы), перекрестный запрос, запрос с параметрами и запрос SQL. Для создания несложного запроса на выборку можно обратиться к мастеру простых запросов. С его помощью можно построить как однотабличный, так и многотабличный запрос. Мастера Access позволяют также создавать запросы других типов: запрос на наличие повторяющихся записей, на поиск записей без подчиненных. Разработка более сложных запросов требует использования средств конструктора запросов.

В программе Access широко используются выражения. Они активно применяются в процессе работы с базой данных при указании условий отбора записей, создании вычисляемых полей, операциях обновления данных и др. Основными компонентами выражений являются операторы, идентификаторы и функции.

На практике важную роль играют запросы на изменение, с помощью которых можно удалить записи, добавить новые, а также выполнить массовое обновление данных одной или нескольких таблиц.

Запросы – незаменимый компонент для работы с большим объемом информации.



Список используемой литературы


  1. Формы, отчеты, запросы в Microsoft Access 2003. П. Мак-Федрис. – М.: Издательский дом «Вильямс», 2005.

  2. Самоучитель Microsoft Access 2003. Т.В. Тимошок. – М.: Диалектика, 2004

  3. Microsoft Access 2003. Наиболее полное руководство в подлиннике. В. Михеева, И. Харитонова. – С-П.: «БХВ – Петербург», 2004.

  4. Использование Microsoft Office Access 2003. Р. Дженнингс. – М.: «Вильямс», 2005.

  5. Microsoft Access 2000. Библия пользователя. К.Н. Праг, М.Р. Ирвин. – М.: Издательский дом «Вильямс», 2000.


Предметный указатель


В

Выражения, 2, 7, 14, 15, 17, 18, 19, 20, 39



З

Запрос на выборку, 39

Запросы SQL, 2, 38

Запросы действия, 2, 33, 39



М

Многотабличные запросы, 2, 21, 28



Н

Нереляционная база данных, 21



О

Операнды, 2, 14

Операторы, 2, 14, 15, 16, 17, 18, 19, 20, 39

П

Параметрические запросы, 2, 31, 39



Перекрестные запросы, 2, 10, 39

1   2   3   4   5   6   7   8   9


База даних захищена авторським правом ©shag.com.ua 2016
звернутися до адміністрації

    Головна сторінка