Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

  • быстрый поиск определенных данных путем фильтрации с применением определенных критериев (условий);

  • вычисление или сведение данных;

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

Запросы как средство поиска данных и работы с ними

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

Основные типы запросов

Назначение

Запрос на выборку

Получение данных из таблицы и выполнение вычислений.

Запрос на изменение

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

Создание запроса на выборку

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

Просмотр данных из выбранных полей

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

  1. Откройте базу данных и на вкладке Создание нажмите кнопку Конструктор запросов.

  2. На вкладке Таблицы дважды щелкните таблицу Products .

  3. Допустим, в таблице "Товары" содержатся поля "Наименование товара" и "Цена по прейскуранту". Дважды щелкните элементы Наименование товара и Цена по прейскуранту, чтобы добавить эти поля в бланк запроса.

  4. На вкладке Конструктор запросов нажмите кнопку Выполнить. Запрос будет выполнен, и отобразится список товаров и цен на них.

К началу страницы

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

Например, если у вас есть база данных для магазина, который продает продукты питания, и вы хотите просмотреть заказы для клиентов, которые живут в определенном городе. Предположим, что данные о заказах и данные о клиентах хранятся в двух таблицах с именами Customers и Orders соответственно. Если каждая таблица имеет поле Идентификатор клиента, которое формирует основу отношение "один-ко-многим" между двумя таблицами. Вы можете создать запрос, который возвращает заказы для клиентов в определенном городе, например Лас-Вегасе, с помощью следующей процедуры:

  1. Откройте базу данных. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

  2. На вкладке Таблицы дважды щелкните Клиенты и заказы.

    Обратите внимание на линию (называемую соединением), которая соединяет поле "Код" в таблице "Заказчики" с полем "Код заказчика" в таблице "Заказы". Эта линия отображает связь между двумя таблицами.

  3. В таблице "Клиенты" дважды щелкните элементы Организация и Город, чтобы добавить эти поля в бланк запроса.

  4. В бланке запроса в столбце Город снимите флажок в строке Показать.

  5. В строке Условие отбора столбца Город введите Тюмень.

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

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

  7. На вкладке Конструктор запросов в группе Результаты нажмите кнопку Выполнить. Происходит выполнение запроса и отображается список заказов клиентов из Тюмени.

  8. Нажмите клавиши CTRL+S, чтобы сохранить запрос.

К началу страницы

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

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

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

  1. В области навигации щелкните правой кнопкой мыши запрос Заказы по городу (созданный в предыдущем разделе) и выберите в контекстном меню пункт Конструктор.

  2. В бланке запроса в строке Условие отбора столбца "Город" удалите слово Тюмень и введите [Для какого города?].

    Строка [Для какого города?] является предложением ввести параметр. Квадратные скобки показывают, что при выполнении запроса должно появиться предложение ввести данные, а текст (в данном случае Для какого города?) представляет собой вопрос, отображаемый в предложении.

    Примечание: В предложении ввести параметр нельзя использовать точку (.) или восклицательный знак (!).

  3. Установите флажок в строке Показать столбца "Город", чтобы в результатах запроса отображался город.

  4. На вкладке Конструктор запросов в группе Результаты нажмите кнопку Выполнить. Запрос предложит ввести значение в строке "Город".

  5. Введите слово Москва и нажмите клавишу ВВОД, чтобы увидеть заказы для клиентов в Москве.

    Но что делать, если значения, которые можно указать, неизвестны? В приглашении на ввод можно использовать подстановочные знаки.

  6. На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.

  7. В бланке запроса в строке Условие отбора столбца Город введите Like [Для какого города?]&"*".

    В этом предложении ввести параметр ключевое слово Like, амперсанд (&) и звездочка (*), заключенная в кавычки, позволяют ввести сочетание знаков, включая подстановочные знаки, для получения разных результатов. Например, если пользователь вводит *, запрос возвращает все города; если пользователь вводит М, запрос возвращает все города, начинающиеся на букву "М"; если пользователь вводит *с*, запрос возвращает все города, в названиях которых имеется буква "с".

  8. На вкладке Конструктор запроса в группе Результаты нажмите кнопку Выполнить, а затем в запросе введите Создать и нажмите клавишу ВВОД.

    В результате выполнения запроса будет отображен список заказов от клиентов из Москвы.

Указание типов данных для параметра

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

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

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

  1. Открыв запрос в режиме конструктора, на вкладке Конструктор запросов в группе Показать и скрыть щелкните Параметры.

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

  3. В столбце Тип данных выберите тип данных для каждого параметра.

Дополнительные сведения см. в статье Использование параметров для запроса входных данных при выполнении запроса.

К началу страницы

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

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

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

  1. На вкладке Главная нажмите кнопку Режим и выберите Конструктор.

    Запрос "Промежуточные суммы для товаров" будет открыт в конструкторе.

  2. На вкладке Конструктор запросов в группе Показать и скрыть щелкните Итоги.

    В бланке запроса отобразится строка Итоги.

Примечание: Несмотря на схожие названия, строка Итоги в бланке и строка Итог в таблице — не одно и то же.

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

  • Строку Итог из таблицы можно добавить в результаты запроса итоговых значений.

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

  • Во втором столбце бланка в строке Итог выберите в раскрывающемся списке вариант Sum.

  • На вкладке Конструктор запросов в группе Результаты нажмите кнопку Выполнить. Происходит выполнение запроса, а затем отображается список товаров с промежуточными суммами.

  • Нажмите клавиши CTRL+S, чтобы сохранить запрос. Оставьте запрос открытым.

Дополнительные сведения см. в статье Отображение итогов по столбцу в таблице с помощью строки "Итог".

К началу страницы

Выполнение расчетов на основе данных

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

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

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

  2. На вкладке Таблицы дважды щелкните Сведения о заказе.

  3. В таблице "Сведения о заказе" дважды щелкните Код товара, чтобы добавить это поле в первый столбец бланка запроса.

  4. Во втором столбце бланка щелкните правой кнопкой мыши строку Поле, а затем выберите в контекстном меню команду Область ввода.

  5. В диалоговом окне Область ввода введите или вставьте следующее выражение: Промежуточный итог: ([Количество]*[Цена за единицу])-([Количество]*[Цена за единицу]*[Скидка])

  6. Нажмите кнопку ОК.

  7. На вкладке Конструктор запросов нажмите кнопку Выполнить. Происходит выполнение запроса, а затем отображается список товаров с промежуточными суммами для каждого заказа.

  8. Нажмите клавиши CTRL+S, чтобы сохранить запрос, и назовите его Промежуточные суммы для товаров.

Дополнительные сведения см. в статье Отображение итогов по столбцу в таблице с помощью строки "Итог".

К началу страницы

Просмотр сводных данных и статистических показателей

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

  1. Запустите созданный ранее запрос подытоги продуктов и оставьте результаты открытыми в Режим таблицы.

  2. На вкладке Главная щелкните элемент Итоги. В нижней части таблицы появится новая строка со словом Total в первом столбце.

  3. Щелкните ячейку в последней строке с именем Итог.

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

  5. Выберите Количество. Содержимое ячейки изменится с Итог на число значений в столбце.

  6. Щелкните соседнюю ячейку (второй столбец). Обратите внимание на стрелку, которая появилась в ячейке.

  7. Щелкните стрелку и выберите Сумма. В поле будет отображаться сумма значений в столбце.

  8. Оставьте запрос открытым в режиме таблицы.

К началу страницы

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

Теперь предположим, что вы хотите просмотреть промежуточные итоги продукта, но также хотите агрегировать по месяцам, чтобы в каждой строке отображались промежуточные итоги по продукту, а в каждом столбце — промежуточные итоги продукта за месяц. Чтобы отобразить промежуточные итоги для продукта и промежуточные итоги продукта за месяц, используйте перекрестный запрос.

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

  1. На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.

  2. В группе Настройка запросов щелкните Добавить таблицы.

  3. Дважды щелкните Заказы и нажмите кнопку Закрыть.

  4. На вкладке Конструктор запроса в группе Тип запроса щелкните Перекрестная вкладка. В бланке строка Показать скрыта, а отображается строка Перекрестная таблица.

  5. В третьем столбце бланка щелкните правой кнопкой мыши строку Поле , а затем выберите в контекстном меню пункт Область ввода. Откроется окно Область ввода.

  6. В диалоговом окне Область ввода введите или вставьте следующее выражение: Месяц: "Месяц" & DatePart("м", [Дата заказа])

  7. Нажмите кнопку ОК.

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

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

  10. Нажмите клавиши CTRL+S, чтобы сохранить запрос.

    Дополнительные сведения о перекрестных запросах см. в статье Упрощение чтения сводных данных с помощью перекрестного запроса.

К началу страницы

Создание запроса на создание таблицы

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

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

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

  1. Откройте базу данных из предыдущего примера.

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

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

  2. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

  3. Дважды щелкните Сведения о заказе и заказы.

  4. В таблице Заказы дважды щелкните поля Код заказчика и Город получателя, чтобы добавить их в бланк.

  5. В таблице Сведения о заказе дважды щелкните элементы Код заказа, Код товара, Количество, Цена за единицу и Скидка, чтобы добавить эти поля в бланк.

  6. В столбце Город получателя бланка снимите флажок в строке Показать. В строке Условие отбора введите 'Ростов' (включая одинарные кавычки). Проверьте результаты выполнения запроса, прежде чем использовать их для создания таблицы.

  7. На вкладке Конструктор запросов в группе Результаты нажмите кнопку Выполнить.

  8. Нажмите клавиши CTRL+S, чтобы сохранить запрос.

  9. В поле Имя запроса введите Запрос по заказам в Ростове и нажмите кнопку ОК.

  10. На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.

  11. На вкладке Конструктор запросов в группе Тип запроса щелкните Создать таблицу.

  12. В диалоговом окне Создание таблицы в поле Имя таблицы введите Заказы в Ростове и нажмите кнопку ОК.

  13. На вкладке Конструктор запросов в группе Результаты нажмите кнопку Выполнить.

  14. В диалоговом окне подтверждения нажмите кнопку Да, и в области навигации отобразится новая таблица.

    Примечание: Если таблица с указанным именем уже существует, она удаляется перед выполнением запроса.

Дополнительные сведения об использовании запросов создания таблиц см. в разделе Создание запроса на создание таблицы.

К началу страницы

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

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

Предположим, вы создали таблицу для совместной работы с партнером из Ростова, но вспомнили, что этот партнер работает также с клиентами из Казани. Необходимо добавить в эту таблицу строки с данными по Казани. Используя следующую процедуру, можно добавить эти данные в таблицу "Заказы в Ростове".

  1. Откройте запрос с именем "Запрос заказов в Чикаго", созданный ранее в режиме конструктора.

  2. На вкладке Конструктор запросов в группе Тип запроса нажмите кнопку Добавить. Откроется диалоговое окно Добавление.

  3. В диалоговом окне Добавление щелкните стрелку в поле Имя таблицы и выберите Заказы в Ростове в раскрывающемся списке, а затем нажмите кнопку ОК.

  4. В бланке в строке Условие отбора столбца "Город получателя" удалите значение 'Ростов' и введите 'Казань'.

  5. В строке Добавление записей в таблицу выберите соответствующее поле для каждого столбца.

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

  6. На вкладке Конструктор запросов в группе Результаты нажмите кнопку Выполнить.

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

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

К началу страницы

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

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

Важно: Запрос на изменение невозможно отменить. Возможно, перед обновлением следует создать резервные копии всех таблиц, которые будут обновлены запросом на обновление.

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

  1. Откройте таблицу "Заказы в Ростове" в конструкторе.

  2. В строке "Код товара" измените тип данных Числовой на Текстовый.

  3. Сохраните и закройте таблицу "Заказы в Ростове".

  4. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

  5. Дважды щелкните Чикаго Заказы и продукты.

  6. На вкладке Конструктор запроса в группе Тип запроса нажмите кнопку Обновить.

  7. В бланке больше не будут отображаться строки Сортировка и Показать и появится строка Обновление.

  8. В таблице Заказы в Ростове дважды щелкните элемент Код товара, чтобы добавить это поле в бланк.

  9. В бланке в строке Обновление столбца Код товара введите или вставьте следующую строку: [Товары].[Наименование]

    Совет: Запрос на обновление можно использовать для удаления значений полей; для этого используется пустая строка ("") или значение NULL в строке Обновление.

  10. В строке Условие отбора введите или вставьте следующую строку: [Код продукта] Like ([Товары].[Код])

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

  12. На вкладке Конструктор выберите Режим >Режим таблицы. Запрос возвращает список кодов товаров, которые будут обновлены.

  13. На вкладке Конструктор запросов нажмите кнопку Выполнить.

    При открытии таблицы "Заказы в Ростове" можно будет увидеть, что числовые значения в поле "Код товара" заменены наименованиями из таблицы "Товары".

Дополнительные сведения о запросах на обновление см. в статье Создание и запуск запроса на обновление.

К началу страницы

Создание запроса на удаление

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

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

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

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

  2. Дважды щелкните Заказы в Чикаго.

  3. На вкладке Конструктор запросов в группе Тип запроса нажмите кнопку Удалить. В бланке больше не будут отображаться строки Сортировка и Показать и появится строка Удалить.

  4. В таблице Заказы в Ростове дважды щелкните поле Код заказа , чтобы добавить его в бланк.

  5. В бланке в строке Условие отбора в столбце "Код заказа" введите Is Null.

  6. На вкладке Конструктор запросов в группе Результаты нажмите кнопку Выполнить.

Дополнительные сведения о запросах на удаление см. в статье Создание и выполнение запроса на удаление.

К началу страницы

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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