Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка.doc
Скачиваний:
9
Добавлен:
09.11.2019
Размер:
2.4 Mб
Скачать

3.6 Создание запросов в Microsoft Access

В Microsoft Access возможны следующие варианты создания запросов:

– мастер запросов,

– конструктор запросов.

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

Рисунок 21 – Мастер запроса

После выбора типа запроса, выходит окно с параметрами, где вы указываете таблицы и их столбцы, которые в запросе участвуют (рис.22).

Рисунок 22 – Выбор полей для запроса

Окно конструктора состоит из двух частей: в верхней части размещена схема данных запроса, содержащая список таблиц и связи между ними, а в нижней части находятся параметры для составления запроса (рис. 23)

Рисунок 23 – Конструктор запросов

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

В строке имя таблицы выбор таблицы, с которой выбрано поле.

В строке сортировка – выбор типа сортировки.

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

Создание простейших запросов на набор значений

  1. На вкладке Создание в группе Другие щелкните Конструктор запросов.

Откроется диалоговое окно Добавление таблицы.

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

При использовании данных из примера добавьте к запросу таблицу «Сотрудники».

  1. Добавьте поля, которые нужно использовать в запросе, в сетку конструктора. Можно дважды щелкнуть каждое поле или перетащить его в пустую ячейку со строки Поле.

При использовании таблицы из примера добавьте поля «Имя», «Фамилия» и «Дата рождения».

  1. В поле, которое содержит искомые наибольшие или наименьшие значения (при использовании примера таблицы — поле «Дата рождения»), в строке Сортировкаи выберите порядок сортировки По возрастанию или По убыванию.

При сортировке по убыванию будут возвращены самые последние даты, при сортировке по возрастанию — самые давние даты.

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

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

  2. Нажмите кнопку Выполнить , чтобы выполнить запрос и вывести результаты в режиме таблицы.

  3. Сохраните запрос и оставьте его открытым для выполнения дальнейших действий.

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

Добавление условий в запрос

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

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

  2. В сетке конструктора в столбец справа от столбца «Дата рождения» скопируйте и вставьте, или введите следующее выражение: Expr1: DatePart("m";["Дата рождения"]). Нажмите кнопку Выполнить.

Функция DatePart извлекает из поля «Дата рождения» значение месяца.

  1. Перейдите в режим конструктора.

  2. Справа от первого выражения вставьте или введите следующее выражение: Expr2: DatePart("d";["Дата рождения"]). Нажмите кнопку Выполнить.

В данном случае функция DatePart извлекает из поля «Дата рождения» значение дня.

  1. Перейдите в режим конструктора.

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

  3. Нажмите кнопку Выполнить.

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

Для продолжения работы с примером данных перейдите в режим конструктора. Затем в строку Условия столбца Дата рождения введите следующее выражение:

Month(["Дата рождения"]) > Month(Date()) Or Month(["Дата рождения"])= Month(Date()) And Day(["Дата рождения"])>Day(Date())

Результаты этого выражения будут следующими: часть Month(["Дата рождения"]) > Month(Date()) проверяет дату рождения каждого сотрудника и определяет, попадает ли она на последующие месяцы, и если это так, включает эти записи в запрос. Часть Month(["Дата рождения"])= Month(Date()) And Day(["Дата рождения"])>Day(Date()) выражения проверяет даты рождения, выпадающие на текущий месяц и определяет, выпадают ли они на сегодняшний или следующие дни месяца. Если условие выполняется, функция включает эти записи в запрос. Итак, данная функция игнорирует все записи, в которых день рождения находится в диапазоне между 1 января и датой выполнения запроса.

Дополнительные примеры выражений условий запроса можно найти в статье Примеры условий запроса.

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

Чтобы просмотреть следующие три дня рождения, введите 3.

  1. Нажмите кнопку Выполнить , чтобы выполнить запрос и вывести результаты в режиме таблицы.