Манипулирование данными. Языка описания запросов QBE. Создание (формирование) запросов в Mіcrosoft Access, страница 3

В строке критериев соответствующего поля следует в квадратных скобках задать текст обращения к пользователю, выводимый в окне диалога ВВЕДИТЕ ЗНАЧЕНИЕ ПАРАМЕТРА. Выполняется поиск кортежей на соответствие заданному значению.

Примечание. При поиске соответствия текстовой строке не имеет значения, применяются строчные или прописные буквы (для поиска значения Петров можно указать ПЕТРов).

Разновидностью параметрического запроса является запрос, в условие отбора которого является выражением, содержащим элементы формы (Between [Forms]![Form-QRY]![txtDate1] And [Forms]![Form-QRY]![txtDate2]). В этом случае параметры задаются в форме, а затем выполняется обработчик событий, который вызывает параметрический запрос.

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

В этом случае SQL-выражение запроса содержит конструкцию:

WHERE (

(([Укажите параметр для выбора условия запроса] = 1) AND УСЛОВИЕ-1))

OR

(([Укажите параметр для выбора условия запроса] = 2) AND УСЛОВИЕ-2))

)

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

Перекрестный запрос

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

Перекрестные запросы обладают следующими достоинствами:

- возможностью обработки значительного объема данных и вывода их в формате, который очень хорошо подходит для автоматического создания графиков и диаграмм;

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

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

Перекрестные запросы удобны для представления данных в виде таблицы, но такая таблица часто имеет разное количество столбцов, что представляет сложность для построения отчетов.

При определении запроса пользователь:

- указывает поле/поля, формирующее заголовки строк;

- выбирает поле/поля, задающие заголовки столбцов,

- задает условия отбора значений;

- определяет вычисляемые поля отчета.

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

Если заголовки столбцов – названия месяцев в перекрестной таблице сортировка происходит в алфавитном порядке, что не соответствует календарному порядку. Поэтому в этом случае следует задать характеристику (свойство) запроса ХАРАКТЕРИСТИКИ СТОЛБЦОВ – перечислить через точку с запятой (запятую) трехбуквенные сокращения месяцев года. (В версии 2007 выполняется автоматически.)

Параметрические перекрестные запросы не поддерживает ядро СУБД (Data Base Engine), даже в случае, когда запрос попытаться создать на основе запроса с параметром (хотя конструкция не противоречит синтаксису SQL). Возможный выход – создать параметрический запрос на создание таблицы. Затем выполнить перекрестный запрос к этой таблице. (Следует контролировать очередность запросов, иначе перекрестный запрос будет применен не к тем данным).