Запросы действия, параметрические и перекрестные запросы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Запросы действия, параметрические и перекрестные запросы



 

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

Запросы действия предназначены для изменения, переноса, добавления или удаления данные в таблицах, а также для создания новых таблиц из набора Recordset. Различают четыре типа запросов действий: запрос добавления, запрос удаления, запрос обновления и запрос создания таблицы. Access помечает имя запроса действия восклицательным знаком в окне базы данных.

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

Рассмотрим процесс создания запроса добавления на примере переноса записей из таблицы "Вагоны" в таблицу "Отправленные вагоны". Это необходимо для сокращения размера таблицы "Вагоны" (и, соответственно, повышения скорости работы ИС), поскольку в ней хранится информация о вагонах, находящихся на данный момент на предприятии, и потребность в этой информации для выполнения различных запросов и печати отчетов гораздо выше, чем потребность в данных об уже отправленных с предприятия вагонах.

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

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

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

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

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

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

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

В большинстве случаев для создания перекрестного запроса достаточно воспользоваться мастером (Запросы\Создать \Перекрестный запрос). В первом окне мастера необходимо выбрать таблицу (или другой запрос), на основании которой будет построен перекрестный запрос. В нашем случае выбираем таблицу "Вагоны". Далее выберем поля, значения которых будут использованы в качестве заголовков строк. Выберем одно поле – "Код груза". В следующем окне мастера необходимо выбрать поля, значения которых будут использованы в качестве названий столбцов. В примере это поле "Дата прибытия"*. В окончательной перекрестной таблице количество строк будет равно количеству видов грузов, прибывающих на предприятие, а количество столбцов – количеству дней, в течение которых информация о вагонах находится в таблице "Вагоны". В следующем окне мастера необходимо указать поле, значения которого будут отображаться на пересечении столбцов и строк перекрестной таблицы, а также выбрать вычисления, которые будет выполнять Access над значениями выбранного поля. Поскольку в примере требуется определить количество вагонов, пришедших с определенным грузом в течение каждых суток, выберем поле "Номер вагона" (его значения – уникальные), а в качестве действия – подсчет количества этих уникальных значений, т.е. функцию Count (счетчик). Кроме того, в перекрестной таблице можно задать автоматическое суммирование по каждой строке, т.е. определить количество вагонов с каждым родом груза, прибывших за указанный период. Для этого достаточно установить флажок "Вычислить итоговое значение для каждой строки?". После нажатия (в следующем окне) кнопки (Готово) Access отобразит в табличной форме результаты запроса. Полученные таким образом выборки можно сохранить во внешнем файле и выполнить углубленный статистический анализ средствами, например, Excel или при помощи других специализированных статистических программ.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-05; просмотров: 245; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.84.155 (0.006 с.)