Модификация запроса

Бланк запроса по образцу

Схема данных запроса

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

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

Бланк запроса по образцу (QBE) представлен в виде таблицы в нижней панели окна запроса, которая имеет для заполнения следующие строки Поле:, Имя таблицы:, Сортировка:, Вывод на экран:, Условие отбора:, или До формирования запроса эта таблица пуста.

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

При заполнении бланка запроса необходимо:

• в строку Поле включить имена полей, используемых в запросе,

• в строке Вывод на экран отметить поля, которые должны быть включены в результирующую таблицу,

• в строке Условия отбора задать условия отбора записей,

• в строке Сортировка выбрать порядок сортировки записей результата.

Для включения нужных полей из таблиц БД в соответствующие столбцы запроса можно воспользоваться следующими приемами:

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

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

В списке полей каждой таблицы на первом месте стоит символ *, который означает «все поля таблицы». Этот пункт выбирается, если в запрос включаются все поля.

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

Для удаления поля в бланке запроса надо выделить удаляемый столбец, щелкнув кнопкой мыши а области маркировки столбца и нажать клавишу <Del> или выполнить пункт меню Правка|Удалить столбец.

Для перемещения поля в бланке надо выделить соответствующий столбец и перетащить его в новую позицию с помощью мыши. Столбец, на место которого перемещен новый, и все столбцы справа от него будут сдвинуты вправо.

3. Условия отбора записей, сортировка и фильтрация данных

Условия отбора записей могут задаваться для одного или нескольких полей в соответствующей строке бланка запроса.

Условием отбора является выражение, которое состоит из операторов сравнения и сравниваемых операторов. В качестве операторов сравнения и логических операторов могут использоваться: =, <, >, < >, Between, In, Like, And, Or, Not, которые определяют операцию над одним или несколькими операндами.

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

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

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

Константами являются неизменяющиеся значения, например True, Falls, Да, Нет, Null.

 
 

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

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

Сформировать условие отбора можно с помощью построителя выражения. Перейти в окно Построитель выражений можно, нажав кнопку Построитель на панели инструментов или выбрав команду Построить в контекстно-зависимом меню. Курсор мыши должен быть установлен в ячейке ввода условия отбора.

После ввода выражения в бланк и нажатия клавиши <Enter> Access выполняет синтаксический анализ выражения и отображает его в соответствии с результатами этого анализа.

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

Поле Выражение Описание
ПунктНазначеиия "Москва" Отображает заказы на доставку товаров в Москву
ПунктНазначения "Москва" Or "Санкт-Петербург" Использует оператор Or для отображения заказов на доставку товаров в Москву или Санкт-Петербург
ДатаОтгрузки Between #05.01.03# And #10.01.03# Использует оператор Between...Andдля отображения заказов на отгрузку товаров не ранее 5-янв-03 и не позднее 10-янв-03
ДатаОтгрузки #2/2/03# Отображает заказы на отгрузку товаров 2-фев-03
СтранаДоставки In("Россия", "США") Использует оператор In для отображения заказов на доставку товаров в Россию или США
СтранаДоставки Not "США" Использует оператор Notдля отображения заказов на доставку товаров во все страны, за исключением США
ИмяКлиента Like "С*" Заказы на доставку товаров клиентам, имена которых начинаются с буквы С
Название >="Н" Отображает заказы на доставку товаров в фирмы, названия которых начинаются с букв, находящихся в диапазоне от Н до Я
ДатаЗаказа < Date()- 30 Использует функцию Dateдля отображения заказов, сделанных ранее, чем 30 дней назад
ДатаЗаказа Уеаг([ДатаЗаказа])=2003 Использует функцию Yearдля отображения заказов, сделанных в 2003 году
ДатаЗаказа Уеаг([ДатаЗаказа])= Year(Now())And Моnth([ДатаЗаказа])= Month(Now()) Использует функции Yearи Month,а также оператор Andдля отображения заказов текущего года и месяца
ОбластьДоставки Is Null Отображает заказы для клиентов, у которых поле «ОбластьДоставки» является пустым
ОбластьДоставки Is Not Null Отображает заказы для клиентов, у которых поле «ОбластьДоставки» содержит какое-либо значение
Факс "" Отображает заказы для клиентов, у которых нет факсимильного аппарата, то есть для тех клиентов, у которых поле «Факс» содержит пустую строку, а не значение Null

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: