Как составить запрос в аксесе

Забудьте про сложный SQL! Учимся составлять запросы в Access мышкой: выборки, обновления и сводные таблицы без боли и ночей у монитора.

Бесплатная консультация юриста

+7 (800) 302-87-29

Реклама jurik.ru

Запрос (Query), это один из ключевых объектов базы данных Microsoft Access, предназначенный для отбора, сортировки, проведения вычислений, подведения итогов, а также для внесения изменений в данные основных таблиц. Грамотное составление запросов позволяет работать не со всей массивом данных сразу, а только с нужной выборкой.

В этой статье мы подробно разберем основные способы создания запросов: с помощью Мастера запросов (для начинающих) и в Конструкторе запросов (для гибкой настройки), а также рассмотрим популярные типы запросов, такие как «От и До» и параметрические.

Подготовка: Источники данных

Прежде чем создавать запрос, определитесь с источником данных. Запрос может основываться на:

  • Одной таблице.
  • Нескольких связанных между собой таблицах (например, «Клиенты» и «Заказы»).
  • Других запросах.

Важно: Если вы используете несколько таблиц, убедитесь, что между ними установлены связи (Один-ко-Многим) в окне «Схема базы данных» (Вкладка Инструменты базы данных → Связи).

Способ 1: Создание запроса с помощью Мастера (Простой старт)

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

  1. Перейдите на вкладку Создание (Create).
  2. В группе «Запросы» нажмите Мастер запросов (Query Wizard).
  3. В открывшемся окне выберите Запрос на выборку (Simple Query Wizard) и нажмите «ОК».
  4. Выбор полей: В выпадающем списке «Таблицы/Запросы» выберите нужную таблицу. Переносите нужные поля из списка «Доступные поля» в «Выбранные поля» кнопками > (один) или >> (все). Нажмите «Далее».
  5. Тип итогов (опционально): Если нужно сгруппировать данные (например, сумма продаж по каждому менеджеру), выберите «С итогами» (Summary) и настройте функции (Сумма, Счет, Среднее и т.д.). Если просто нужна выборка записей, оставьте «Подробно» (Detail). Нажмите «Далее».
  6. Имя запроса: Введите понятное имя (например, Запрос_Продажи_За_Месяц) и выберите «Открыть запрос для просмотра результата» или «Изменить запрос в конструкторе» для доработки.
  7. Нажмите Готово.

Способ 2: Создание в Конструкторе запросов (Профессиональный подход)

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

Запуск и добавление таблиц

  1. Вкладка Создание → кнопка Конструктор запросов (Query Design).
  2. Откроется диалоговое окно «Добавление таблицы» (Show Table). На вкладке «Таблицы» (или «Запросы», «Обе») выделите нужные объекты и нажмите Добавить (Add). Можно добавить несколько таблиц за раз, зажав Ctrl.
  3. Нажмите Закрыть (Close).
  4. Проверьте связи: Между таблицами должны отображаться линии связи (1 — ∞). Если их нет — перетащите первичный ключ одной таблицы на внешний ключ другой.

Работа с сеткой конструктора (QBE, Query By Example)

Нижняя часть окна — это сетка, где настраиваются поля результата.

Строка сетки Назначение
Поле (Field) Выбор поля из таблицы (стрелка вниз) или ввод выражения/вычисляемого поля (например: ПолнаяСтоимость: [Цена]*[Количество]).
Таблица (Table) Автоматически подставляется имя таблицы, к которой принадлежит поле.
Сортировка (Sort) Выбор порядка: По возрастанию (А-Я, 1-9), По убыванию (Я-А, 9-1) или «Не сортировать».
Показать (Show) Снятие галочки скрывает поле из результата (используется для критериев отбора по скрытым полям).
Критерий (Criteria) Условие отбора (фильтр). Примеры см. ниже.
Или (Or) Дополнительные условия по логическому «ИЛИ» (логическое ИЛИ между строками).

Добавление полей в сетку

  • Дважды кликните по имени поля в верхней панели (в окне таблицы) — оно добавится в первую свободную колонку.
  • Перетащите поле мышкой в нужную колонку.
  • Выберите поле из выпадающего списка в ячейке «Поле».
  • Звездочка (*) — добавляет сразу все поля таблицы (быстро, но не позволяет настраивать сортировку/критерии для отдельных полей).

Популярные типы критериев отбора (Строка «Критерий»)

В строке Критерий пишутся условия, по которым отбираются записи. Условия в одной строке работают по логическому «И» (AND), в разных строках (Критерий / Или) — по «ИЛИ» (OR).

Запрос «От и До» (Диапазон значений)

Один из самых частых сценариев — выборка записей в числовом или датном диапазоне;

  • Числа: Between 100 And 1000 (включая границы).
  • Даты: Between ## And ## (даты в Access обязательно в знаках # #).
  • Альтернатива: >=100 And <=1000.

Точное совпадение и текстовые фильтры

  • Точное значение: "Москва" (кавычки ставятся автоматически);
  • Частичное совпадение (подстрока): Like "Москва" (звездочка — любое количество символов, ? — один символ).
  • Начинается на: Like "М".

Список значений (Оператор IN)

In ("Москва", "Санкт-Петербург", "Казань")

Пустые и непустые значения

  • Пустые (Null): Is Null.
  • Не пустые: Is Not Null.

Параметрические запросы (Ввод условия при запуске)

Позволяют пользователю вводить критерий в диалоговом окне каждый раз при открытии запроса.

  1. В строке Критерий нужного поля введите текст в квадратных скобках: [Введите название города:].
  2. При запуске запроса появится окно с подсказкой «Введите название города:» и полем для ввода.
  3. Это удобно для отчетов и форм, чтобы не менять конструктор каждый раз.

Другие важные типы запросов

На вкладке Конструктор (в группе «Тип запроса») можно переключать режим:

  • Запрос на выборку (Select) — основной тип, только чтение данных (описан выше).
  • Запрос на создание таблицы (Make Table), создает новую таблицу на основе выборки. Полезно для архивации или промежуточных расчетов. Сначала делается запрос на выборку, затем он конвертируется в этот тип.
  • Запрос на добавление (Append) — добавляет записи выборки в существующую таблицу. Требует указания целевой таблицы и сопоставления полей.
  • Запрос на обновление (Update) — массово меняет значения в полях существующих записей (например, повысить все цены на 10%). Осторожно: действие необратимо!
  • Запрос на удаление (Delete), удаляет отобранные записи из таблицы. Осторожно!
  • Перекрестный запрос (Crosstab) — сводная таблица (строки, столбцы, значения/итоги). Создается через Мастер перекрестных запросов.

Вычисляемые поля и агрегатные функции

Вычисляемые поля (Выражения)

В строке Поле пишутся по формату: ИмяНовогоПоля: Выражение.

Примеры:
ПолнаяЦена: [Цена] * [Количество]
Возраст: DateDiff("yyyy"; [ДатаРождения]; Date)
ФИО: [Фамилия] & " " & [Имя] & " " & [Отчество]
Статус: IIf([Сумма] > 10000; "VIP"; "Стандарт")
  1. Для полей, по которым группируем (например, «Менеджер»), выберите Группировать по (Group By).
  2. Для полей, которые считаем (например, «Сумма»), выберите: Сумма (Sum), Счет (Count), Среднее (Avg), Мин/Макс (Min/Max).
  3. Для полей, не участвующих в группировке и расчете, выберите Выражение (Expression) или уберите их из выборки.

Просмотр SQL-кода и сохранение

  • Вид SQL: На вкладке «Главная» → «Вид» → «SQL» (или правый клик по вкладке запроса → «SQL»). Это позволяет увидеть/скопировать/отредактировать чистый SQL-код (SELECT ... FROM ... WHERE ...).
  • Сохранение: Ctrl + S или значок дискеты. Введите имя (рекомендуется префикс qry_, напр. qry_Продажи_Менеджеры).
  • Сохраненный запрос появляется в области навигации слева. Его можно открывать, использовать как источник для форм, отчетов, других запросов или экспорта в Excel.

Типичные ошибки и советы

  • Ошибка «Несоответствие типов данных»: Сравниваете текст с числом или дату с текстом. Проверьте формат поля в таблице и критерий в запросе (даты в # #, текст в «»).
  • Дубликаты записей: При объединении нескольких таблиц без правильной связи или группировки строки могут повторяться. Используйте «Уникальные значения» (Unique Values / DISTINCT) в свойствах запроса (F4 → Unique Values = Yes).
  • Медленная работа: Избегайте лишних полей (не ставьте *, если нужно 3 поля), ставьте индексы на поля связей и критерии отбора в таблицах.
  • Имена полей с пробелами: Заключайте в квадратные скобки: [Дата заказа].

Умение составлять запросы в Access — это основа эффективной работы с данными. Начните с Мастера для простых задач, но обязательно освойте Конструктор: он открывает доступ к мощным возможностям — вычисляемым полям, сложной логике отбора (включая «От и До» и параметры), группировке итогов и действиям по изменению данных (добавление, обновление, удаление). Регулярная практика и изучение SQL-кода, который генерирует Access, быстро повысят ваш уровень владения программой.