- •Учебное пособие по базам данных
- •Раздел 1. Теория проектирования баз данных
- •Тема 1.1. Основные понятия и типы моделей данных
- •Тема 1.2. Взаимосвязи в моделях и реляционный подход к построению моделей
- •Раздел 2. Организация баз данных
- •Тема 2.1. Проектирование баз данных и создание таблиц
- •Пуск – Все программы – ms Office – ms Access
- •Тема 2.2 Управление записями
- •Тема 2.3 Обработка данных. Организация запросов Назначение и виды запросов
- •Условия отбора записей
- •Многотабличные запросы
- •Использование групповых операций в запросах
- •Раздел 3 Организация пользовательского интерфейса
- •Тема 3.1 Работа с формами: создание, модификация, удаление
- •Тема 3.2 Формирование отчетов
- •Тема 3.3 Командный интерфейс приложения
- •Сервис → Служебные программы → Диспетчер кнопочных форм.
- •Сервис → Служебные программы → Диспетчер кнопочных форм.
Условия отбора записей
Условия отбора записей могут задаваться для одного или нескольких полей в строке «Условие отбора» бланка запроса. Условием отбора является выражение, которое состоит из, операторов сравнения и операндов.
В качестве операндов могут использоваться: литералы, константы, идентификаторы (ссылки).
Л итералами являются конкретные значения, воспринимаемые Access так, как они записаны. В качестве литералов могут быть использованы числа, строковые значения, даты. Например, если в запрос, созданный по таблице «Студенты» в поле «Фамилия» ввести, например, «Андреев», то результатом запроса будут выбранные сведения о студентах с такой фамилией. (Рис. 2.27).
Рис. 2.27 Применение литерал в запросе на выборку
Константами являются не изменяющиеся значения, которые определены в Access, например, Истина (True), Ложь (False), Пустые записи (Null), Не пустые записи (Not null).
Е сли, например, нужно получить список студентов, не имеющих домашнего телефона, то в условиях отбора в поле «Телефон» надо ввести условие Null (Рис. 2.28). В этом случае в запрос войдут все студенты, для которых поле «Телефон» пустое.
Рис. 2.28 Применение константы «Null» в конструкторе запросов
Е сли же нужен список студентов, имеющих телефон, то в соответствующем поле надо ввести Not null (Рис. 2.29). В этом случае в запрос войдут все студенты, для которых поле «Телефон» не пустое.
Рис. 2.29 Применение константы «Not null» в конструкторе запросов
Идентификатор представляет собой ссылку на значение поля, элемента управления или свойства. Идентификаторами могут быть имена полей таблиц, форм, отчетов и т.д. Они должны заключаться в квадратные скобки. Как правило, Access производит автоматическую подстановку скобок. Во многих случаях ссылка на конкретное значение должна указывать точное его местоположение в иерархии объектов базы данных, начиная с объекта верхнего уровня. Если необходимо указать ссылку на поле в конкретной таблице, форме, отчете, то перед именем поля ставится имя таблицы, формы, отчета, также заключенное в квадратные скобки и отделенное от имени поля восклицательным знаком. Например, ссылка на поле в таблице примет ВИД: [Имя таблицы] ! [Имя поля].
О ператорами сравнения и логическими операторами, использование которых допускается в условиях отбора, являются: =, <, >, о, <=, >=, Between, In , Like , And, Or, Not. Они определяют операцию над одним или несколькими операндами. Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор «равно». Одно и то же условие может быть задано с помощью разных операторов. Условия отбора, заданные для разных полей в одной строке, связываются по умолчанию с помощью логической операции "И" (т.е. выполняются одновременно) (Рис. 2.30), заданные в разных строках — с помощью логической операции "ИЛИ" (т.е. выполняется хотя бы одно из них) (Рис. 2.31). Например: для выбора студентов, получивших оценку «5» можно создать запрос, в котором условия выполняются одновременно:
Рис. 2.30 Условия отбора для двух полей, связанные логической операцией «И» (выполняются одновременно)
Для выбора «двоечников» (выполняется хотя бы одно из условий):
Р ис. 2.31 Условия отбора для трех полей, связанные логической операцией «ИЛИ» (выполняется хотя бы одно из них)
Можно так же использовать комбинацию операторов.
Оператор Between позволяет задать интервал для числового значения и даты. Например: для таблицы «Товары» надо выбрать те, цена которых находится в пределах от 100 до 300 руб.
Рис. 2.32 Применение оператора Between … and … для создания условий отбора
Оператор In позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Например:
In("Математики";"Информатики";"Истории")
Оператор Like позволяет работать с образцами, использующими символы шаблона при поиске в текстовых полях. Допускается использование операторов шаблона — звездочка (*) и вопросительный знак (?).
Символ «звездочка» - означает произвольное количество любых символов. Например: если в поле «Фамилия» поставить Like И*, то в будут отобраны только фамилии, начинающиеся с буквы «И» (Рис. 2.33). Если ввести условие Like *ов, то будут отобраны все фамилии, заканчивающиеся на «ов». При записи в поле «Телефон» условия Like 3*, будут отобраны телефоны, начинающиеся с цифры 3.
Символ «?» означает один произвольный символ, или его отсутствие. Например: если в поле «Город» указано условие «Like М?????», то будут отобраны города, названия которых начинаются с буквы «М» и имеют не более 6 символов. (Подходит, например Москва или Минск, не подходит – Могилев).
С ам оператор можно не указывать, ограничиваясь только шаблоны. (Оператор будет дописан автоматически).
Рис. 2.33 Применение оператора «Like» для создания условий отбора
Функции даты и времени — служат для проведения операций со значениями даты и времени. Например, функция DateDiff О вычисляет промежуток между двумя датами, а функция Date() возвращает значение текущей даты, Time() – текущего времени.
После ввода выражения в бланк и нажатия клавиши <Enter> Access выполняет синтаксический анализ выражения.
Параметрические запросы
Если в поле «Курс» таблицы «Студенты» ввести номер, то при выполнении запроса появится список студентов, данного курса. Однако, при решении практических задач значительно удобнее вводить значение в диалоговом окне в процессе выполнения запроса. Для того чтобы выводилось диалоговое окно, обеспечивающее ввод конкретного значения в условия отбора, нужно определить параметр запроса.
Имя параметра запроса может задаваться непосредственно в строке «Условия отбора» в квадратных скобках (Рис 2.34).
Рис. 2.34 Создания параметрического запроса
При выполнении такого запроса появится окно, в которое надо будет ввести номер курса. В зависимости от введенного номера в запрос будут отобраны сведения о студентах нужного в данный момент курса. (Если же номер курса вводить непосредственно в графу «Условие отбора», то пришлось бы создавать запросы отдельно для каждого курса).
В запросе может быть определено несколько параметров (Рис. 2.35). При этом порядок их ввода через диалоговые окна определяется порядком расположения полей с параметрами в бланке запроса. (Начиная с того, что записано левее).
Рис. 2.35 Создания параметрического запроса с двумя параметрами
Таким образом, с помощью одного запроса можно отобрать сведения о студентах определенной группы и определенного курса.
Чтобы иметь возможность ввести несколько значений в условия отбора одного поля, можно в условии отбора этого поля определить несколько параметров. Например, для отбора записей по двум курсам в условии отбора можно записать два параметра, связанных логической операцией or: [Введите курс] OR [Еще один курс].