20. Запросы с условием. Запросы с параметром, вычисляемым полем, итоговый и перекрёстный. Использование построителя выражений

Если в запросе надо отобрать записи, отвечающие определенному условию, то это условие надо записать с помощью алгебры логики в строке «Условие отбора».

В этом поле допускается использование следующих операторов: =, >, <, <=, >=, Between, In, Like, And, Or, Not.

Если выражение в условии отбора не содержит оператора, то считается, что используется оператор =.

Если условие отбора содержит текстовые значения, то оно набирается в двойных кавычках. В текстовых значениях допускается использование символов подстановки * и ?. Звёздочка заменяет произвольное количество символов, а знак вопроса – только один символ. В частности, если получается, что внутри открывающих и закрывающих двойных кавычках есть другие двойные кавычки, то они заменяются на знак вопроса.

Оператор Between позволяет задать интервал для числового значения и даты. Оператор Between используется совместно с оператором And. Например, Between 10 And 60 задаёт интервал от 10 до 60.

Оператор In позволяет выполнить проверку на равенство любому значению из списка, который задаётся в круглых скобках. Например: In(“Иванов”;”Петров”;”Сидоров”).

Оператор Like используется для поиска в текстовых полях. Например, Like “Иванов*”.

Условия отбора, заданные в одной строке, связываются с помощью логической операции AND (И). Условия отбора, заданные в разных строках связываются с помощью логической операции OR (ИЛИ).

Например, если мы хотим получить сведения о продуктах, которые заказывали клиенты с кодами 20 и 40, то запрос может быть оформлен так:

Поле:

Код клиента

название

Имя таблицы:

заказы

продукты

Групповая операция:

группировка

группировка

Сортировка:

   

Вывод на экран:

   

Условие отбора:

20 OR 40

 

Или:

   

Создание запросов с параметром, вычисляемым полем, итоговый и перекрёстный

Пусть мы хотим получить сведения о закупленных продуктах клиентом с кодом 20. Можно создать запрос, указав в строке «Условие отбора» код 20. Если затем нам потребуется получить те же сведения о клиенте с кодом 40, то можно открыть предыдущий запрос в режиме конструктора и исправить код 20 на 40. Но можно поступить и по другому. Создать запрос с параметром, который перед выполнением будет спрашивать для клиента с каким кодом выдать информацию. Для этого надо в строке «Условие отбора» вместо указания конкретного кода ввести поясняющий текст в квадратных скобках. В данном случае это может быть следующее пояснение: «введите код клиента».

Поле:

Код клиента

название

Имя таблицы:

заказы

продукты

Групповая операция:

группировка

группировка

Сортировка:

   

Вывод на экран:

   

Условие отбора:

[Введите код клиента]

 

Или:

   

Главное, чтобы текст приглашения не совпадал ни с одним именем поля и не было двух одинаковых текстов приглашения. Например, [введите код первого клиента] OR [введите код второго клиента].

Полей с параметром может быть несколько.

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

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

 

Пастила фруктовая

Крекер солёный

Печенье Столичное

Бистро «Париж»

 

40

 

Ресторан «Барракуда»

20

 

10

Перекрёстный запрос можно создавать или с помощью мастера перекрёстного запроса или сразу в режиме конструктора.

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

Сначала надо щелкнуть по кнопке «Создать», выбрать строчку перекрёстный запрос и «ОК».

В появившемся окне выбрать таблицу или запрос с необходимыми данными и на кнопку «Далее».

На следующем шаге из списка доступные поля в список выбранные поля переместить поле, которое будет служить заголовками строк и «Далее».

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

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

Использование построителя выражений

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

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

Если построитель выражений используется при создании таблицы, например, для ввода выражения в поле «Условие на значение», то после щелчка мышью в этом поле справа появится кнопка с тремя точками, щелчок по которой вызовет появление окна построителя выражения. Построитель выражения в этом случае можно также вызвать щелчком по кнопке с подсказкой «Построить» в панели инструментов окна конструктора.

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

Если курсор ввода находится в области ввода, то там и будут появляться вводимые с клавиатуры символы.

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

Ну и наконец, при щелчке по кнопке «Вставить», в область ввода будет добавлена строка, которая выделена в правом окне нижней части построителя выражений.

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

Щелчок по папке без всяких символов приводит к отображению её содержимого в среднем окне.

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

Ну и наконец, если выделить в правом окне то что хотите вставить в выражение, то останется только щёлкнуть по кнопке «Вставить».

Редактирование выражения осуществляется в области ввода выражения обычным способом и с помощью кнопок «Отмена» и «Назад».

Контрольные вопросы

1. Что такое запрос с условием?

2. Где в запросе указываются условия отбора?

3. Какие операторы допускается использовать в условиях отбора?

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

5. Какой логической операцией связываются условия отбора, записанные для разных полей в одной строке?

6. Какой логической операцией связываются условия отбора, записанные в разных строках?

7. Что такое запрос с параметром?

8. Как создать запрос с параметром в режиме конструктора?

9. Как в запросе создаётся вычисляемое поле?

10. Что такое перекрёстный запрос?

11. Как создать перекрёстный запрос в режиме конструктора?

12. Что такое построитель выражений?

13. Как вызвать построитель выражений в макете запроса?

14. Как пользоваться построителем выражений?

15. Где осуществляется редактирование выражения, формируемого в построителе выражений?

Информатика


*****
© Банк лекций Siblec.ru
Формальные, технические, естественные, общественные, гуманитарные, и другие науки.