Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Запросы.docx
Скачиваний:
2
Добавлен:
20.11.2018
Размер:
1.67 Mб
Скачать

6.5. Интерактивные и перекрестные запросы

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

Ниже запрос, в котором считается число врачей указанной специальности. В качестве условия отбора записей указано предложение [Введите специальность врача]. При выполнении такого запроса с параметром Access сначала предлагает ввести специальность врача во всплывающем окне, результат выборки распространяется только на записи, соответствующие введенному значению параметра (рис. 13).

Рис. 13. Пример выполнения запроса с параметрами

Теперь создадим запрос с двумя запрашиваемыми параметрами и сделаем его интерактивным. Для этого нам необходимо создать форму с элементами управления, в которых будут выбираться эти параметры.

  1. Откройте вкладку Создание на панели инструментов и нажмите на кнопку Конструктор форм.

  2. Перенесите на форму элемент управления Поле со списком (проследите за тем чтобы режим мастеров был включен).

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

  4. Добавьте поле для ввода на форму и назовите её «Стаж». Сохраните и закройте форму.

  5. Вызовите конструктор запроса, в котором будут выбираться поля ФИО, Специальность и Стаж из таблицы Врачи.

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

  7. Теперь остается связать форму и запрос. Для этого откройте нашу форму и добавьте на неё кнопку (мастера должны быть выключены). Откройте свойства кнопки и в разделе События найдите пункт Нажатие кнопки. В построителе выберите Макросы. В открывшемся окне выберите макрокоманду Открыть запрос, где в качестве запроса должен быть указан тот, что мы только что сделали. Закройте окно макрокоманды и сохраните изменения.

  8. Теперь проверьте как работает наш интерактивный запрос. Для этого откройте форму в режиме просмотра, введите параметры и нажмите кнопку с макрокомандой. На рисунке 14 представлен пример интерактивного запроса с двумя запрашиваемыми параметрами.

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

Для создания перекрестного запроса необходимо указать:

  • Поле заголовков строк.

  • Поле заголовков столбцов.

  • Поле для подсчета итоговых значений на пересечении строк и столбцов.

Рис. 14. Пример запроса с двумя параметрами ввода

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

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

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

Рис. 15. Пример перекрестного запроса

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

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

Рис. 16. Перекрестный запрос с критерием отбора

Продемонстрируем использование функций для работы с датой. Выведем информацию о посещениях врачей по месяцам (рис 17).

Рис. 17. Перекрестный запрос с использованием функций работы с датой

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]