Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UP_informatika-2009.doc
Скачиваний:
65
Добавлен:
07.06.2015
Размер:
1.36 Mб
Скачать
    1. Qbe запросы на выборку

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

Для получения полноценного запроса следует придерживаться следующих правил:

  1. Обязательно заполняются только строки «Поле» и «Условие отбора».

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

  3. Строка «Таблица» заполняется автоматически именами таблиц для полей выбранных в строке «Поле».

  4. При необходимости в строке «Сортировка» задаётся её вид по одному или нескольким полям. Имеются следующие варианты сортировки: «по возрастанию», «по убыванию», «отсутствует» (используется по умолчанию).

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

  6. Чаще всего указывается только одно условие для одного поля. Если нужно для него указать несколько условий, объединяемых логическим оператором ИЛИ (выполняется или первое или второе или … условие), то они записываются в разных строках столбца относящегося к этому полю. Первое в строке «Условие отбора», остальные в строках «ИЛИ».

  7. Условие отбора, записанные в одной строке и относящиеся к разным полям должны выполняться одновременно.

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

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

Константами являются не изменяющиеся значения, например, True, False, Да, Нет, Null (константы автоматически определя­ются в Access).

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

В выражении условия отбора допускается использование опера­торов сравнения: =, <, >, =, Between, In, Like, и логических операторов And, Or, Not, которые определяют операцию над одним или несколькими операндами. Ниже приведён перечень операторов, которые могут присутствовать в условии отбора и примеры простых условий (Таблица 17). Отметим некоторые особенности написания условий отбора. Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =. Текстовые значения в выражении вводятся в кавычках, если они содержат пробелы или знаки препинания. В противном случае кавычки можно не вводить, они будут добавлены автоматически.

Оператор Between проверяет входит ли значение поля в заданный интервал. Используется для полей типа дата/время или числового типа. Например, Between 10 And 100 задает интервал от 10 до 100, а . Between 10.01.70 And 10.02.77 задает интервал от первой даты до последней.

Оператор In выполняет проверку на равенство любому значению из списка, который задается в круглых скобках. На­пример, In ("Математика", "Информатика", "История").

Оператор Like сравнивает по образцу, который идёт после оператора и заключается в двойные кавычки “. В образце можно использовать обычные символы и символы шаблона. Чаще всего в качестве символов шаблонов применяются : * # ? . Они обозначают:

* - любое число символов Например по условию, Like “И*”, заданному в поле “Фамилия” выбираются все фамилии начинающиеся на И.

# - одна цифра. Например, по условию, Like”#5”, заданному в поле “Стаж” выбираются строки, где стаж кончается на цифру 5, а по условию Like”##.##.65” заданному в поле “Дата”, строки, где есть даты 1965 года.

? - одна буква Например, по условию, Like “?о?” , заданному в поле “Фамилия” выбираются все фамилии состоящие из трёх букв, причём средняя буква «о» .

В параметрическом запросе одно или несколько значений операнда могут вводиться в процессе его выполнения. Чтобы выводилось диалоговое окно для ввода конкретного значения операнда в условия отбора, нужно определить параметр запроса. Имя параметра запроса может вводиться непосредственно в строку «Условие отбора» в квадратных скобках. При вы­полнении запроса это имя появится в диалоговом окне «Введите значение параметра».

Например, для получения информации о сотрудниках, чей стаж больше введённого, условие отбора выглядит так : >[Введи минимальный стаж]. При его выполнении на экране появиться диалоговое окно с надписью «Введи минимальный стаж». И после того как туда будет введено число 10 , компьютер проанализирует условие « > 10 » и выдаст выборку, куда будет входить две строки, в которых стаж больше 10 лет.

Для текстовых полей удобно использовать параметрический запрос с оператором Like .Например, условие отбора для поля «Фамилия» , позволяющее находить сотрудников по полной фамилии или её началу будет выглядеть так:

Like “Введи фамилию или её часть ”&”*”.

При его выполнении на экране появиться диалоговое окно c надписью: «Введи фамилию или её часть». И после того как туда будет введена буква П , компьютер проанализирует условие «Like “П*”» и выдаст выборку, куда будет входить две строки с фамилиями ,начинающимися на букву «П».

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

Таблица 17 - Операторы, используемые в условиях отбора

Тип

Оператор

Описание

Пример

Поле

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

Арифметические

^

Возведение в степень

Стаж

=3^0,5

*

Умножение

Стаж

>2*[Стаж]

/

Деление

Оклад

=([Оклад])/2

+

Сложение

Стаж

>=[Стаж]

-

Вычитание

Стаж

>=[Стаж]-10

Текстовые

&

Объединение строк

Фио

"Сотрудник: " &[ Фио]

Сравнения

>

Больше

Оклад

>5000

<

Меньше

Дата

< 12.02.56

>=

Больше или равно

Стаж

>=12,5

<=

Меньше или равно

Дата

<=12.02.56

=

Равно

Фио

=”Иванов И.И.”

<>

Не равно

Стаж

<>25

Between

Проверка на вхождение в интервал

Стаж

Between 10

And 15

Дата

Between 1.1.70 And 15.03.77

Like

Проверка по образцу

Фио

Like”П*”

Стаж

Like”#5”

Дата

Like”##.##.65”

In

Проверку на равенство любому

значению из списка

Фио

In(“Перов”,”Жуков” ,”Серов”)

Стаж

In(10,12,18)

Дата

In(1.1.70,10.2.82)

Логические

And

И (выполняются все условия)

Стаж

>10 And <15

Or

ИЛИ (выполняется одно из условий)

Дата

1.1.70 Or 10.2.82

Not

НЕ (выполняется обратное условие)

Фио

Not (=”Иванов И.И.”)

Для того чтобы иметь возможность ввести несколько значений для одного поля при выполнении запроса, можно в условии от­бора этого поля определить несколько параметров. Например, для отбора записей по двум группам в условии отбора поля Фамилия можно записать два параметра, связанных логической операцией OR — [первая фамилия] OR [вторая фамилия].

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