Бланк запроса по образцу
Схема данных запроса
В окне запроса отображаются выбранные таблицы и связи между ними, имеющиеся в логической схеме (схеме данных) базы данных. Кроме того, 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 |