Компьютеры Windows Интернет

Запросы на выборку в Access. Условия отбора записей в запросах Microsoft access условие отбора

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

Условия задаются в строке свойства Условие отбора (Criteria) бланка запроса с помощью выражения. Выражение может задаваться по образцу или использовать сложные функции выбора.

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

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

При вводе простого выражения в поле текстового типа Access берет образец из ячейки свойства Условие отбора (Criteria) и интерпретирует его таким образом, чтобы показать все записи, в которых содержится такой же образец данных.

Это средство является довольно мощным инструментом. Учтите, что вы лишь задали образец данных, a Access не только интерпретировала его, но и использовала для создания динамического набора данных запроса. Это как раз то, что называют запросом по образцу (query by example): вы вводите образец и выполняете запрос на его основе.

Для удаления критерия из ячейки выделите ее содержимое и либо нажмите клавишу , либо выберите команду Правка Удалить (Edit Delete).

Условия можно также задавать для полей с данными типа Числовой (Numeric), Дата/время (Date/Time) и Логический (Yes/No).

Access может сравнивать значение поля типа Дата/время (Date/Time) с заданным значением, используя следующие операторы сравнения: <, >, = и их комбинацию. Обратите внимание, что Access автоматически размещает значения даты между разделителями (символами #). Разделители позволяют Access отличать данные типа Дата/время (Date/Time) от данных типа Текстовый (Text). Так же, как при вводе текстовых образцов, вам необязательно вводить знаки #, поскольку Access понимает, что вам нужно, и сама преобразует формат ввода.

Запросы подробно

Запрос является объектом БД. Он представляет собой сформулированную информационную потребность.

При работе с запросом можно выделить два этапа: формирование (проектирование) и выполнение. При выполнении запроса выбирается информация из всех таблиц БД в соответствии с критерием запроса.



Формирование запроса производится в Конструкторе запросовкомандами:

ВставкаЗапрос;

Инструментом Новый объект–Запрос;

ВкладкаЗапрос – Создать запрос с помощью Конструктора;

ВкладкаЗапрос – кнопка Создать запрос с помощью Мастера.

В верхней части окнаКонструктора (рис. 1) размещаются нужные таблицы посредством команды Запрос- Добавить таблицу или та же команда в контекстном меню. В нижней части окна расположен бланк запроса, информация в него заносится путем перетаскивания нужных полей из таблиц в верхней части окна в строку "Поле" или двойным щелчком мыши. При этом имя таблицы в бланке подставляется автоматически.

Наличие "галочки" в строке "Вывод на экран" означает присутствие данного поля в таблице результатов поиска. Критерии запроса устанавливаются в строке "Условие отбора" и последующих строках, связанных логическим оператором OR. Все критерии отбора, указанные в одной строке, объединяются оператором AND.

В качестве "Условия отбора" могут быть выражения (вычисляемое поле), даты, текст, которые вносятся либо вручную, либо инструментом , либо с помощью команды контекстного меню Построить. Константы типа Дата/Время заключаются в #.

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

Вычисляемые поля в запросах

С помощью запросов можно задать вычисления над данными и сделать вычисляемое поле новым полем в наборе данных. Для создания нового поля в пустой ячейке строки Поле в бланке запроса вводится формула: Имя поля: Выражение

Для построения выражений имеется специальное средство Построитель выражений, вызываемый правой кнопкой мыши на поле или кнопкой Построить.

Рис.2. Окно Построителя выражений

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

Параметрические запросы

Условия запроса могут быть включены непосредственно в бланк запроса, но, для того чтобы сделать его более универсальным, можно вместо конкретного значения отбора включить в запрос параметр, т. е. создать параметрический запрос. Для этого в строку "Условие отбора" вводится фраза в квадратных скобках, которая будет выводиться в качестве "подсказки" в процессе диалога, например, [Введите фамилию]. Таких параметров может быть несколько, каждый для своего поля.

Для каждого параметра можно указать тип данных, который корректируется командой Запрос– Параметры.При задании нескольких параметров имя каждого должно быть уникальным.

Итоговые запросы

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

Возможные операции в строке "Групповые операции":


SUM - сложение;

AVG - среднее значение;

MIN - минимальное значение;

МАХ - максимальное значение;

COUNT- количество записей со значениями (без пустых значений);

STDEV - стандартное отклонение;

VAR - дисперсия;

FIRST- значение в первой записи;

LAST - значение в последней записи.


Перекрестные запросы

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

Для каждого поля такого запроса может быть выбрана одна из установок: "Заголовки строк", "Заголовки столбцов", "Значение", которое выводится в ячейках таблицы, и "Не отображается".

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

Модификация БД с помощью запросов на изменение

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

Запрос на обновление

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

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

При обновлении полей следует иметь в виду, что если при проектировании таблицы в свойствах поля было указано "Условие на значение", то при обновлении этого поля условие может быть нарушено, чего не допустит MS Access. Поэтому нужно или изменить условие на значение, или удалить это условие в Конструкторе.

Запрос на добавление

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

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

Запрос на удаление

"Старые" или неиспользуемые записи таблиц можно удалить, но обязательно сначала произвести выборку и проверить ее. Целесообразно сделать копию.

Запрос на добавление

1. Создайте путем копирования дубликат таблицы CONT без данных, назвав ее MEDAL (Медаль), для отбора медалистов. Для этого в контекстном меню для таблицы CONT выберите Копировать, затем выполните команду Вставить, в параметрах вставки укажите "Только структура" (см рис.). Просмотрите таблицу MEDAL - она должна быть пустой и иметь такую же структуру, как и таблица CONT.


2. Отберите в таблицу MEDAL записи обо всех абитуриентах-медалистах. Для этого:

Создайте запрос на выборку, включив в него все поля таблицы CONT (Контингент) в любой последовательности, и критерий по полю mdl (медаль) (Да в строке Условие отбора), запустите запрос для проверки правильности отбора записей;

Измените статус запроса "Выборка" на запрос "Добавление" (Запрос- Добавление), в появившемся окне задайте имя таблицы для добавления MEDAL , обратите внимание на появление строки "Добавление" в бланке запроса;


Выполните запрос и подтвердите добавление; сохраните запрос, обратив внимание на значок у его имени. Просмотрите результаты добавления данных в таблице MEDAL.

Самостоятельно создайте:

Запрос на добавление записей в таблицу HOSTEL (Общежитие) для всех иногородних (не москвичей);

Запрос на добавление записей в таблицу STUD (Студенты) для тех абитуриентов, у которых суммарный балл по экзаменам больше 30.

Запрос на удаление

6. Удалите из таблицы CONT (Контингент) записи об абитуриентах, получивших хотя бы по одному из экзаменов менее 5 баллов.

Создайте запрос на выборку, включив в него все поля таблицы CONT (Контингент) и критерий по полям с экзаменационными оценками, запустите запрос для проверки правильности отбора записей;

Измените статус запроса "Выборка" на запрос "Удаление". (Запрос- Удаление)

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

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

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

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

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

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

[Имя таблицы]! [Имя поля]

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

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

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

Для выполнения запроса необходимо на панели инструментов конструктора запросов нажать кнопку [Запуск (!)] или [Представление запроса].

Сортировка данных. Для удобства просмотра можно сортировать записи в таблице в определенной последовательности. Кнопки сортировки на панели инструментов (или команды меню Записи\Сортировка, Сортировка по возрастанию (Сортировка по убыванию) позволяют сортировать столбцы по возрастанию или убыванию. Прежде чем щелкнуть по кнопке сортировки, следует выбрать поля, используемые для сортировки. Современные СУБД (такие, как Access) никогда не сортируют таблицы физически, как это делалось раньше. Средства сортировки данных (а также фильтрации, поиска и замены) реализованы в Access как автоматиче­ски создаваемые запросы. Записи таблицы всегда располагаются в файле базы данных и том порядке, в котором они были добавлены в таблицу.

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

Условия отбора - это ограничения, накладываемые на запрос или расширенный фильтр для определения записей, с которыми он будет работать. Например, вместо просмотра всех поставщиков компании, можно просмотреть только поставщиков из Литвы. Для этого необходимо указать условие отбора, отсеивающее все записи, кроме тех, у которых в поле «Страна» указано «Литва».Чтобы задать условие отбора для поля в бланке запроса, введите выражение в ячейку Условие отбора для данного поля. В предыдущем примере выражением является «Литва». Могут быть использованы и более сложные выражения, например, «Between 1000 And 5000».Если запрос содержит связанные таблицы, то в значениях, указанных в условиях отбора для полей из связанных таблиц, учитывается регистр знаков. Они должны соответствовать регистру значений в базовой таблице.

Для чего в запросе и отчете можно использовать вычисляемое поле?

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

Что такое параметры объединения в СУБД Microsoft Access, для чего их используют?

Что такое запрос с параметром, и как его можно задать?

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

  1. В меню Справка выберите Примеры баз данных , а затем Пример базы данных Борей . Когда появится Главная кнопочная форма , закройте ее.
  2. Из меню Вид выберите Объекты базы данных , а затем Запросы .
  3. Счета , а затем щелкнитеКонструктор .
  4. Введите следующую команду в ячейку Условия отбора для поля СтранаПолучателя. Обратите внимание, что введенное выражение должно быть заключено в квадратные скобки.

[Обзор счетов страны]

  1. В меню Запрос выберите пункт Выполнить . При появлении запроса введите Великобритания и щелкните OK для просмотра результатов запроса. Обратите внимание на то, что запрос возвращает только записи, у которых в качестве страны получателя значится Великобритания.

Создание запроса с двумя и более параметрами

  1. Запустите Microsoft Access 2002.
  2. В меню Справка выберите Примеры баз данных , а затем Пример базы данных Борей . Когда появится Главная кнопочная форма , закройте ее.
  3. Из меню Вид выберите Объекты базы данных , а затем Запросы .
  4. В окне базы данных щелкните запрос Счета , а затем щелкнитеКонструктор .
  5. Введите следующую команду в ячейке Условия отбора для поля ДатаРазмещения.

Между [ввести дату начала] и [ведите дату окончания]

  1. В меню Запрос выберите команду Выполнить . При запросе даты начала введите 1/1/1997, затем нажмите кнопку OK . При запросе даты окончания введите 1/31/1997, а затем нажмите кнопку OK , чтобы просмотреть результаты запроса. Обратите внимание на то, что запрос возвращает только записи с датой заказа, выпадающей на январь 1997 года.
  2. Закройте запрос без сохранения.

Создание параметров, использующих подстановочные символы

В следующем примере показывается создание параметров, использующих оператор LIKE и подстановочный символ (*) .

  1. Запустите Microsoft Access 2002.
  2. В меню Справка выберите Примеры баз данных , а затем Пример базы данных Борей . Когда появится Главная кнопочная форма , закройте ее.
  3. Из меню Вид выберите Объекты базы данных , а затем Запросы .
  4. В окне базы данных щелкните запрос Счета , а затем щелкнитеКонструктор .
  5. Введите следующую команду в ячейке Условия отбора для поля Марка:

LIKE "*" & [Введите продукты, содержащие выражение] & "*"

  1. В меню Запрос выберите команду Выполнить . При появлении запроса введите соус, затем нажмите кнопку OK , чтобы просмотреть результаты запроса. Обратите внимание на то, что запрос возвращает только записи, в которых название продукта содержит слово "соус."
  2. Закройте запрос без сохранения.

Какие групповые операции можно использовать в СУБД MS Access при создании запросов с групповыми операциями? Опишите назначение каждой из них.

Сегодня мы подробно поговорим о запросах в Access.


Запросы, как вы уже знаете, нужны для работы с данными, находящимися в таблицах.
Чтобы создать запрос…
1) …в окне базы данных открываете Запросы
2) …и создаете запрос с помощью конструктора.



Пожалуйста, НЕ пользуйтесь для создания запросов Мастером , потому что он позволяет делать только самые простые запросы, а переделывать их потом в более продвинутые даже сложнее, чем создать запрос в конструкторе «с нуля».

Отсев пустых строк

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



Почему это происходит?
Дело в том, что у нас в таблице tbPerson наряду с владельцами собак записаны и судьи (Петровская, Елец, Терещук). Судьи не имеют права привозить своих собак на выставку, поэтому в строках с их фамилиями пустые ячейки с кличками собак.
Есть два способа удалить пустые строки.
1. Поставить условие на значение клички собаки Is not Null , т.е. НЕ ПУСТА.



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



Вопрос вам: какие настройки нужно поменять в диалоговом окне параметров объединения?

Запросы с вычислениями

До сих пор мы только отбирали записи по различным условиям. Но Access позволяет не только просматривать данные, записанные в таблицах, но и производить ВЫЧИСЛЕНИЯ: по дате рождения определять возраст; из имени, фамилии и отчества делать фамилию с инициалами; по цене единицы товара и его количества определять общую стоимость покупки; по дате выдачи книги в библиотеке определять величину штрафа при задолженности и многое другое. Для вычислений используются встроенные функции (похожие на те, что есть в Excel).


Простейшая операция – это сложение строк . Напишем в ячейке выражение для вывода такой фразы: владелец из города город .
Для этого запишем в верхней строке нового столбца области условий: + “ из города ” + .



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


Выражения для вычислений записываются в самой верхней строке (Поле ) области условий. До сих пор мы писали условия в нижних строках (Условия отбора ).


Чтобы вам не запутаться: в верхней строке мы пишем, ЧТО выводить на экран, а затем (в нижней) – при КАКОМ УСЛОВИИ .


Задание : Напишите выражение для вывода в одной ячейке фамилии владельца и в скобках города, в котором он живет. Вот так: Иванов (Москва) . Город и фамилия должны подставляться из таблицы.

Построитель выражений

Чтобы удобнее было редактировать выражения, существует специальный редактор – «Построитель выражений». Он выглядит так:



И вызывается с помощью контекстного меню: нужно поставить курсор на ту ячейку, куда вы будете записывать выражение:



В построителе выражений вы можете выбирать из библиотеки функции:



и данные из таблиц (можно пользоваться ТОЛЬКО теми таблицами, которые используются в данном запросе и отображены в области данных):



Когда вы двойным щелчком мыши выбираете из списка имя поля или функцию, Access часто вставляет еще слово «выражение», показывая, что НА ЭТО МЕСТО можно вставить другие функции и имена полей. Не забывайте удалять лишние слова «выражение»!


Мы познакомимся с текстовыми и временными функциями, а также с условным оператором Iif(condition; if-true; if-false).


Текстовые функции позволяют преобразовывать строковые переменные:
Left(«Иванов»; 2) = «Ив» оставляет n левых символов
LCase(«Иванов») = иванов делает все буквы строчными
InStr(1; «Иванов»; «но») = 4 находит подстроку (третий аргумент) в строке (второй аргумент), и равняется позиции (от начала) подстроки в строке
Len («Иванов») = 6 выводит количество символов в строке
StrComp(«Иванов»; «Петров») = -1 сравнивает две строки: если они равны, то выдает 0
и другие…


Временные позволяют работать с временными переменными:
Month(#12.04.2007#) = 4
Year(#12.04.2007#) = 2007
Day(#12.04.2007#) = 12.
Now() = 28.04.2008 14:15:42 (текущие дата и время)
Date() = 28.04.2008 (сегодняшняя дата)
DateDiff(«d»; #12.04.2007#; #28.04.2007#) = 16 находит разницу между двумя датами («d» – в днях, “ww”- в неделях, “m” – в месяцах, “yyyy” – в годах и др.)
и другие…


Логические обрабатывают условные выражения:
Iif(<=1; «щенок»; «взрослый») аналог функции ЕСЛИ из Ecxel.
и другие…


Задание : напишите выражение, которое из фамилии, имени и отчества делает фамилию с инициалами. Иванов Иван Иванович -> Иванов И.И.
Задание
Задание
Дополнение : Есть два способа вычислить возраст собаки: один более точный, другой менее:
1) из текущего года вычесть год рождения собаки;
2) с помощью функции DateDiff посчитать, сколько дней прошло с рождения до сегодняшнего дня. Примените в одном из заданий один способ, в другом – другой.

Запросы с параметром

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



Устроен этот запрос так:



На том месте, где обычно стоит условие отбора, теперь записан вопрос (в квадратных скобках), который будет задан пользователю. А ответ пользователя, как вы уже догадались, будет подставлен в эту ячейку в качестве условия отбора.


Задание : создайте запрос, который будет выводить всех собак по фамилии владельца, являющейся свободным параметром.

Запросы с группировкой

С помощью построителей выражений мы можем производить операции над одной строкой: складывать значения в ячейках, преобразовывать данные.
Но что, если нам надо обработать сразу несколько строк: посчитать сумму баллов, найти количество строк с одинаковым значением заданного поля?
Для этого используется группировка (она очень похожа на подведение итогов в Excel).


Посчитаем, сколько собак каждой породы приехали на выставку. Для этого перебросим в область условий всего два поля: кличка и порода – и вызовем дополнительную строку групповые операции (через контекстное меню на области условий):



Теперь сгруппируем собак по породе и посчитаем количество разных кличек в каждой группе:



Подведем итоги выставки и посчитаем средний балл за экстерьер, средний балл за дрессировку и их сумму.


Добавляем в область таблиц таблицу с оценками (tbMarks). Группируем оценки по турнирному номеру собаки и среди групповых операций выбираем среднее значение Avg (от англ. average – среднее).


Выполните запрос и в режиме просмотра обратите внимание, что столбцы с групповыми операциями имеют двойное название (операция + имя поля). Нам это пригодится при подсчете суммы баллов.





Можно также округлить значения до одного знака после запятой: Round(+;1)


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

Запросы на изменение, удаление, добавление

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



Оператору базы данных накануне выставки пришла новая информация:
1) собака Дези заболела и не сможет принять участия в выставке;
2) по ошибке Гардиен, являющийся на самом деле английским сеттером, был указан как ирландский сеттер;
3) владелец Мигунова подала заявку на участие в выставке еще одной своей собаки (кличка: Гарри, порода: сеттер-гордон, пол: м, дата рождения: 15.09.07).


Приступим к редактированию базы данных.
1) Удалить запись с Дези.
Создаем запрос quDelDog. Тип запроса – на удаление. Со сменой типа запроса несколько изменяется и область условий. Появилась новая ячейка Удаление . Под ней вы указываете условие, по которому нужно отобрать записи, подлежащие удалению. Даже если вы указываете условие отбора для одного поля, удалена будет ВСЯ запись.



После того, как вы нажали на «восклицательный знак», на экране появится сообщение о том, что запись удалена. Теперь откройте таблицу tbDog и убедитесь, что Дези в ней нет.


2) У Гардиена изменить ирландский сеттер на английский сеттер.
Создаем запрос quUpdateDog. Тип запроса – на обновление. Находим Гардиена и обновляем у него породу.



Откройте таблицу tbDog и убедитесь, что у Гардиена порода – английский сеттер.


3) Добавить запись с Гарри.
Создаем запрос quAddDog. Тип запроса – на добавление. У запросов на добавление есть одна особенность: в области таблиц отображены НЕ те таблицы, КУДА вы добавляете запись, а ОТКУДА вы берете данные (если это требуется). Целевую таблицу (в которую добавляются записи) вы указываете в диалоговом окне, которое появляется сразу, как только вы установите тип запроса (на добавление):



Поскольку мы не берем данные из других таблиц, а создаем новую запись, то область таблиц должна быть ПУСТОЙ! (там не должно быть ни одной таблицы). В области условий в строке Поле вы пишете, ЧТО добавить (новое значение для каждого поля), а в строке Добавление КУДА (имена полей):



Откройте таблицу tbDog и убедитесь, что Гарри в ней появился!

Язык запросов SQL

Когда вы нажимаете на «восклицательный знак», запрос выполняется. Так это представляется на взгляд новичка.
Профессионалы знают, что на самом деле в этот момент выполняется инструкция на специальном языке запросов SQL. Дело в том, что Access – не единственная система управления базами данных (СУБД). Может быть, вы слышали о таких СУБД в Интернете как MySQL, FreeBSD??? Access просто предлагает очень удобный интерфейс для работы с БД, а в других СУ нет никакой кнопочки с восклицательным знаком. Зато там обязательно есть специальное окошко, в котором можно писать SQL-инструкции.
Access тоже позволяет редактировать запросы в режиме SQL-инструкций:



Правила языка SQL не так сложны. Вы можете сами в этом убедиться! Сделайте простой запрос на выборку (например, выведите кличку, породу и дату рождения собаки по кличке Гарри). Теперь откройте запрос на поиск Гарри в режиме SQL!
Инструкция устроена очень просто:
SELECT поле1, поле2,…
FROM таблица1, таблица2,…
WHERE условие1, условие2,…


Откройте теперь запросы на обновление, изменение, удаление (quDelDog, quUpdateDog, quAddDog) в режиме SQL и выпишите на листе бумаги шаблоны их SQL-инструкций (как это только что было сделано для запроса на выборку).


Запросы с параметром, запросы на группировку, запросы с вычислениями представляют собой такие же SQL-запросы, но только с несколько более сложными условиями отбора. Язык SQL – незаменимый инструмент для тех, кто работает с базами данных!

Задания

Вот те темы, которые мы рассмотрели:
- простые и составные условия отбора
- оператор LIKE
- выборка из нескольких таблиц
- построитель выражений
- запросы с параметром
- запросы на группировку
- запросы на обновление, добавление, удаление
- язык запросов SQL.


Их немало! Но, коль скоро вы их освоили, вы сможете отыскать в базе данных любую информацию.


Проверьте свои знания! Выполните в вашей базе данных следующие запросы (или переименуйте уже выполненные так, чтобы их имена совпадали с именами задач):

1. выборка

quSelectDog : Найдите всех шар-пеев и сеттеров-гордонов из регионов (НЕ из Москвы); используйте оператор «не равно».

2. оператор Like

quLike : Найдите всех абонентов МТС (те, у кого номер мобильного телефона начинается с 8(916)…).

3. выражения

quEvalText : Напишите выражение, которое из фамилии, имени и отчества делает фамилию с инициалами. Иванов Иван Иванович -> Иванов И.И.
quEvalDate : напишите выражение, которое вычисляет, сколько собаке лет по дате ее рождения.
quEvalIif : напишите выражение, которое определяет по возрасту, в какой возрастной категории выступает собака: «щенок» - до года; «юниор» - от года до двух лет; «сеньор» - старше двух лет.
Дополнение : Примените в одном задании один способ вычислить возраст собаки, в другом – другой: 1) из текущего года вычесть год рождения собаки; 2) с помощью функции DateDiff посчитать, сколько дней прошло с рождения до сегодняшнего дня.

4. параметр

quParametre : Создайте запрос, который будет выводить всех собак по фамилии владельца, являющейся свободным параметром.

5. группировка

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

6. редактирование БД

Незадолго до выставки владелец Гороховец уехал на ПМЖ (постоянное место жительства) в Германию и передал всех собак своему другу Карпову Михаилу Игоревичу. Требуется:
1) quAddOwner : добавить запись о новом владельце;
2) quUpdateOwner : изменить у собак Гороховца ID владельца на ID Карпова;
3) quDelOwner : удалить Гороховца из базы данных.


Жду ваших БД с выполненными заданиями, а также шаблоны SQL-инструкций для запросов на обновление, изменение, удаление.

При создании запросов важно правильно сформулировать условия отбора записей из БД. В MS Access доступны следующие возможности:

· простой критерий выборки;

· точное несовпадение значений одного поля;

· неточное совпадение значений поля;

· выбор по диапазону значений;

· объединение критериев нескольких полей;

· условие отбора для результатов итоговых вычислений.

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

Точное несовпадение значений одного поля . Из базы выбираются все записи, кроме тех, для которых задано условие. Например, необходимо выбрать все записи с полем Город , кроме тех, которые в этом поле имеют значение Минск . Для этого в строке Условия отбора в графе Город вводится выражение Not «Минск» или<> «Минск» . Логический оператор Not исключает записи со значением Минск , оператор сравнения <> означает «не равно».

Неточное совпадение значений поля . Такое условие можно задавать, если не известны значения полей. Для выборки используется оператор сравнения Like (подобный). Рядом с оператором записывается образец, содержащий или точное значение, например,Like «Петров», или включающий символы шаблонов, например, Like «Пет*» .

Access допускает следующие символы шаблонов:

? - любой один знак;

* - ноль или более знаков;

#- любая одна цифра;

[список знаков] - любой один знак в списке знаков;

[!список знаков] - любой один знак, не входящий в список.

Кроме списка знаков в квадратные скобки может заключаться диапазон символов, например, [Б-Р]. Условие [б-рБ-Р] позволяет выбрать как заглавные, так и прописные буквы.

При условии Like «[БР]*» выбираются все фамилии, которые начинаются на Б или Р.

Выбор по диапазону значений . Для задания диапазона значений используются операторы:

> (больше),

>= (не менее, больше или равно),

< (меньше),

<= (не более, меньше или равно) (например, >= 10).

Between ... аnd ... (служит для проверки принадлежности диапазону, верхняя и нижняя граница которого соединена логическим оператором AND (например, between 1990 and 1995).

Операторы можно употреблять с текстовыми и цифровыми полями, а также с полями дат.

Объединение критериев одного поля . Если на одно поле налагается более одного условий, то условные выражения могут быть соединены с помощью операторов Or (ИЛИ ) и And (И ).

Объединение критериев нескольких полей . В запросе может быть несколько условий отбора. В этом случае имеют место два варианта выборки записей:

запись выбирается только при выполнении всех условий, что соответствует логической операции И . Запрос называется И-запросом ;

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

При построении ИЛИ-запроса каждое условие, входящее в критерий, должно располагаться на отдельной строке. При построении И-запроса каждое условие, входящее в критерий, должно располагаться в одной строке.

В итоговых запросах существуют два типа критериев отбора записей.

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

Формы

Приложение MS Access создает формы с помощью нескольких средств: форма, разделенная форма, несколько элементов, мастер форм, пустая форма, конструктор форм.

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

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

Разделенная форма – позволяет одновременно отображать данные в двух представлениях – в режиме формы и в режиме таблицы.

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

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

Несколько элементов. Создаваемая форма внешне напоминает таблицу. Данные расположены в строках и столбцах, и одновременно отображается несколько записей. К такой форме можно добавлять графические элементы, кнопки и другие элементы управления.

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

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

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

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

Инструментом конструирования формы являются элементы управления . Наиболее часто используемый элемент управления – поле. К другим элементам управления относятся: надписи, флажки, элементы управления подчиненных форм и отчетов и другие. Элемент управления «поле» может быть присоединенным, свободным и вычисляемым.

· Присоединенный элемент управления – элемент управления, источником данных которого служит поле таблицы или запроса. Присоединенный элемент управления формируется посредством окна Список полей и служит для отображения значений полей источника данных. Это наилучший способ создания присоединенного элемента управления по двум причинам:

· присоединенный элемент управления имеет связанную с ним подпись, которой по умолчанию становится имя поля (или подпись, определенная как свойство для этого поля в источнике данных), следовательно, вводить текст подписи не требуется.

· присоединенный элемент управления наследует значения свойств полей источника данных, например, Формат, Число десятичных, Маска ввода .

· Свободный элемент управления – элемент управления, не имеющий источника данных. Свободные элементы управления служат для вывода на экран текста, линий, прямоугольников и рисунков. Примером свободного элемента является Надпись .

· Вычисляемый элементы управления – элемент управления, источником данных которого является выражение, а не поле.

Конструктор MS Access позволяет создавать формы с подчиненной формой . Подчиненная форма - это такая форма, которую внедряют в другую форму, называемую основной, с целью получения дополнительной информации из другой таблицы. Сначала создают подчиненную форму, затем основную форму и после этого помещают подчиненную форму в основную. Допускается несколько уровней подчиненности форм.

Для изменения форм используются режимы макета и конструктора.

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

Режим конструктора Режим конструктора позволяет более подробно просмотреть структуру формы. Можно просматривать разделы колонтитулов и данных формы. В этом режиме форма не выполняется, поэтому при внесении изменений невозможно просматривать базовые данные. Однако в режиме конструктора удобнее выполнять другие работы:

· добавлять в форму различные элементы управления, такие как надписи, рисунки, линии и прямоугольники.

· изменять источник элемента управления «Поле» непосредственно в поле без использования окна свойств.

· изменять размеры разделов формы, таких как «Заголовок формы» или «Область данных».

· изменять свойства формы, которые недоступны для изменения в режиме макета (например, Представление по умолчанию или Режим формы ).

Отчеты

Отчет является основным объектом MS Access, предназначенным для вывода на печать данных из таблиц и запросов. В отчетах, как правило, MS Access систематизирует данные по группам и подсчитывает итоги как общие, так и промежуточные. Кроме данных, в отчете содержится информация о макете отчета: подписях, заголовках, рисунках и другие сведения.

Приложение MS Access создает отчеты следующими средствами: отчет, мастер отчетов, пустой отчет, конструктор отчетов.

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

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

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

Приложение MS Access имеет средство Мастер наклеек, которое помогает создавать наклейки большинства стандартных размеров. Источником записей для наклеек служит таблица или запрос.

Пустой отчет. Используется длябыстрого создания отчета с небольшим количеством полей. MS Access открывает пустой отчет. Одновременно в правой части окна отображается область Список полей, из которой необходимо выбрать двойным щелчком мыши или перетаскиванием необходимые поля.

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

Конструктор отчетов. Структура отчета, как и структура формы, имеет несколько разделов: Заголовок отчета, Верхний колонтитул, Заголовок группы, Область данных, Примечание группы, Нижний колонтитул, Примечание отчета.

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

· Верхний колонтитул. Используется для размещения названий столбцов в отчетах табличной формы. Печатается вверху каждой страницы.

· Заголовок группы. Содержит название группы и печатается перед каждой новой группой записей. Если поместить в заголовок группы вычисляемый элемент управления, использующий статистическую функцию Sum , сумма будет рассчитываться для текущей группы.

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

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

· Нижний колонтитул. Располагается внизу каждой страницы. Используется для нумерации страниц и для печати постраничной информации.

· Примечание отчета. Примечание отчета можно использовать для печати итогов и другой сводной информации по всему отчету. Печатается один раз в конце отчета.

В проект отчета можно вносить изменения в режимах макета и конструктора.

Просматривать отчет можно различными способами:

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

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

· в режиме предварительного просмотра, если требуется лишь просмотреть отчет перед печатью. Только в этом режиме будут видны несколько столбцов отчета. В предыдущих режимах в отчете отображается один столбец.

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