Запросы упрощают просмотр, добавление, удаление или изменение данных в базе данных Access. Среди других целей использования запросов можно отметить:
-
быстрый поиск определенных данных путем фильтрации с применением определенных критериев (условий);
-
вычисление или сведение данных;
-
автоматизированное управление данными, например регулярный просмотр актуальных данных.
Примечание: Если необходимо использовать запросы, описанные в примере, используйте базу данных Access на компьютере.
-
Запросы как средство поиска данных и работы с ними
-
Создание запроса на выборку
-
Создание запроса с параметрами
-
Создание итогового запроса
-
Создание перекрестного запроса
-
Создание запроса на создание таблицы
-
Создание запроса на добавление
-
Создание запроса на обновление
-
Создание запроса на удаление
Запросы как средство поиска данных и работы с ними
В хорошо структурированной базе данных сведения, которые требуется представить с использованием формы или отчета, зачастую хранятся в разных таблицах. Запрос может извлечь информацию из разных таблиц и собрать ее для отображения в виде формы или отчета. Запрос может представлять собой обращение к данным для получения информации из базы данных или выполнения действий с данными. Запрос можно использовать для получения ответа на простой вопрос, выполнения расчетов, объединения данных из разных таблиц, а также для добавления, изменения или удаления данных в таблице. Это очень гибкий инструмент: существует много типов запросов, и каждый тип создается с учетом задачи.
Основные типы запросов |
Назначение |
Запрос на выборку |
Получение данных из таблицы и выполнение вычислений. |
Запрос на изменение |
Добавление, изменение или удаление данных. Для каждой задачи существует специальный тип запроса на изменение. В веб-приложениях Access запросы на изменение недоступны. |
Создание запроса на выборку
Запрос на выборку позволяет просматривать данные только из определенных полей таблицы либо из нескольких таблиц одновременно или же находить данные, которые соответствуют определенным условиям. Дополнительные сведения см. в простом запросе на выбору.
Просмотр данных из выбранных полей
Например, если база данных содержит таблицу с различной информацией о товарах, а необходимо просмотреть список товаров и их цены, запрос на выборку создается таким образом, чтобы возвратить только названия товаров и соответствующие цены.
-
Откройте базу данных и на вкладке Создание нажмите кнопку Конструктор запросов.
-
На вкладке “Таблицы” дважды щелкните таблицу “Товары”.
-
Допустим, в таблице “Товары” содержатся поля “Наименование товара” и “Цена по прейскуранту”. Дважды щелкните элементы Наименование товара и Цена по прейскуранту, чтобы добавить эти поля в бланк запроса.
-
На вкладке Конструктор нажмите кнопку Выполнить. Запрос будет выполнен, и отобразится список товаров и цен на них.
К началу страницы
Одновременный просмотр данных из нескольких связанных таблиц
Например, если у вас есть база данных для магазина, который продает продукты питания, и вы хотите просмотреть заказы клиентов, которые живут в конкретном городе. Скажем, данные о заказах и сведения о клиентах хранятся в двух таблицах с именами “Клиенты” и “Заказы” соответственно. Если каждая таблица имеет поле “ИД клиента”, которое является основой отношение “один-ко-многим” между двумя таблицами. Вы можете создать запрос, возвращающий заказы для клиентов в конкретном городе, например в Лас-Вегасе, используя следующую процедуру:
-
Откройте базу данных. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
-
На вкладке “Таблицы” дважды щелкните “Клиенты” и “Заказы”.
Обратите внимание на линию (называемую соединением), которая соединяет поле “Код” в таблице “Заказчики” с полем “Код заказчика” в таблице “Заказы”. Эта линия отображает связь между двумя таблицами.
-
В таблице “Клиенты” дважды щелкните элементы Организация и Город, чтобы добавить эти поля в бланк запроса.
-
В бланке запроса в столбце Город снимите флажок в строке Показать.
-
В строке Условие отбора столбца Город введите Тюмень.
Если снять флажок Показать, в результатах запроса не будет отображаться город, а слово Тюмень в строке Условие отбора означает, что требуется просмотреть только те записи, для которых в поле “Город” указано значение “Тюмень”. В этом случае запрос возвращает данные только о тех клиентах, которые находятся в Тюмени. Для использования поля в условии отбора показывать его на экране не обязательно.
-
В таблице “Заказы” дважды щелкните элементы Код заказа и Дата размещения, чтобы добавить эти поля в два следующих столбца в бланке запроса.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить. Происходит выполнение запроса и отображается список заказов клиентов из Тюмени.
-
Нажмите клавиши CTRL+S, чтобы сохранить запрос.
К началу страницы
Создание запроса с параметрами
Если часто требуется выполнять варианты определенного запроса, можно использовать запрос с параметрами. При выполнении запроса с параметрами у пользователя запрашиваются значения полей, которые затем используются для создания условий для запроса.
Примечание: Запрос с параметрами невозможно создать в веб-приложении Access.
В продолжение предыдущего примера, где было показано, как создавать запрос на выборку, который возвращает информацию о заказах для клиентов из Тюмени, можно изменить этот запрос таким образом, чтобы при каждом его запуске выводилось приглашение на ввод названия города. Откройте базу данных, созданную в предыдущем примере.
-
В области навигации щелкните правой кнопкой мыши запрос Заказы по городу (созданный в предыдущем разделе) и выберите в контекстном меню пункт Конструктор.
-
В бланке запроса в строке Условие отбора столбца “Город” удалите слово Тюмень и введите [Для какого города?].
Строка [Для какого города?] является предложением ввести параметр. Квадратные скобки показывают, что при выполнении запроса должно появиться предложение ввести данные, а текст (в данном случае Для какого города?) представляет собой вопрос, отображаемый в предложении.
Примечание: В предложении ввести параметр нельзя использовать точку (.) или восклицательный знак (!).
-
Установите флажок в строке Показать столбца “Город”, чтобы в результатах запроса отображался город.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить. Запрос предложит ввести значение в строке “Город”.
-
Введите слово Москва и нажмите клавишу ВВОД, чтобы увидеть заказы для клиентов в Москве.
Но что делать, если значения, которые можно указать, неизвестны? В приглашении на ввод можно использовать подстановочные знаки.
-
На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.
-
В бланке запроса в строке Условие отбора столбца Город введите Like [Для какого города?]&”*”.
В этом предложении ввести параметр ключевое слово Like, амперсанд (&) и звездочка (*), заключенная в кавычки, позволяют ввести сочетание знаков, включая подстановочные знаки, для получения разных результатов. Например, если пользователь вводит *, запрос возвращает все города; если пользователь вводит М, запрос возвращает все города, начинающиеся на букву “М”; если пользователь вводит *с*, запрос возвращает все города, в названиях которых имеется буква “с”.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить, в строке приглашения запроса введите Создать и нажмите клавишу ВВОД.
В результате выполнения запроса будет отображен список заказов от клиентов из Москвы.
Указание типов данных для параметра
Можно также указать, данные какого типа разрешается вводить в качестве значения параметра. Тип данных можно настроить для любого параметра, но особенно важно сделать это для числовых и денежных данных, а также данных о дате и времени. Когда для параметра указан тип данных, пользователи получают более понятные сообщения об ошибках в случае ввода данных неправильного типа, например ввода текста, когда ожидаются денежные данные.
Если параметр настроен таким образом, чтобы принимать текстовые данные, любое введенное значение интерпретируется как текст и сообщение об ошибке не отображается.
Чтобы указать тип данных для параметра в запросе, выполните процедуру, описанную ниже.
-
Когда запрос открыт в конструкторе, на вкладке Конструктор в группе Показать или скрыть нажмите кнопку Параметры.
-
В диалоговом окне Параметры запроса в столбце Параметр введите текст запроса на ввод значения для каждого параметра, для которого требуется указать тип данных. Убедитесь, что каждый из параметров соответствует запросу, который используется в строке Условие отбора в бланке запроса.
-
В столбце Тип данных выберите тип данных для каждого параметра.
Дополнительные сведения см. в использовании параметров для ввода данных при запуске запроса.
К началу страницы
Создание итогового запроса
Строка “Итог” в таблице очень удобна, но для ответа на более сложные вопросы используется запрос итоговых значений. Такой запрос представляет собой запрос на выборку, позволяющий группировать данные и составлять сводку данных, например когда требуется просмотреть итоги продаж каждого товара. В запросе итоговых значений можно использовать статистическую функцию Sum для просмотра итогов продаж каждого товара.
Примечание: В веб-приложении Access агрегатные функции использовать нельзя.
Чтобы получить итоговые значения промежуточных сумм для товаров, можно следующим образом изменить запрос “Промежуточные суммы для товаров”, созданный в предыдущем примере.
-
На вкладке Главная нажмите кнопку Режим и выберите Конструктор.
Запрос “Промежуточные суммы для товаров” будет открыт в конструкторе.
-
На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Итоги.
В бланке запроса отобразится строка Итоги.
Примечание: Несмотря на схожие названия, строка Итоги в бланке и строка Итог в таблице — не одно и то же.
-
С помощью строки Итоги в бланке можно группировать данные по значениям полей.
-
Строку Итог из таблицы можно добавить в результаты запроса итоговых значений.
-
При использовании строки Итоги в бланке необходимо выбрать статистическую функцию для каждого поля. Если выполнять вычисления с полем не требуется, можно сгруппировать данные по этому полю.
-
Во втором столбце бланка в строке Итог выберите в раскрывающемся списке вариант Sum.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить. Происходит выполнение запроса, а затем отображается список товаров с промежуточными суммами.
-
Нажмите клавиши CTRL+S, чтобы сохранить запрос. Оставьте запрос открытым.
Дополнительные сведения см. в статье Отображение итогов по столбцу в таблице с помощью строки “Итог”.
К началу страницы
Выполнение расчетов на основе данных
Обычно таблицы не используются для хранения вычисляемых значений, таких как суммы, даже если они основаны на данных в одной базе данных, так как они могут быть устаревшими, если значения в них основаны на изменениях. Например, не стоит хранить чей-либо возраст в таблице, так как каждый год вам нужно обновлять значение. вы сохраняете дату рождения человека, а затем используете запрос для расчета его возраста.
Например, существует база данных с информацией о товарах, которые вы хотите продать. Она содержит таблицу под названием “Сведения о заказе”, в которой находится информация о товарах, например цена и количество каждого товара. Можно вычислить промежуточные суммы с помощью запроса, который умножает количество каждого товара на цену за единицу этого товара, количество каждого товара на цену за единицу этого товара и скидку этого товара, а затем вычитает общую скидку из общей цены. Если в предыдущем примере была создана база данных, откройте ее и выполните следующие действия.
-
На вкладке “Создание” нажмите кнопку “Конструктор запросов”.
-
На вкладке “Таблицы” дважды щелкните “Сведения о заказе”.
-
В таблице “Сведения о заказе” дважды щелкните Код товара, чтобы добавить это поле в первый столбец бланка запроса.
-
Во втором столбце бланка щелкните правой кнопкой мыши строку Поле, а затем выберите в контекстном меню команду Область ввода.
-
В диалоговом окне Область ввода введите или вставьте следующее выражение: Промежуточный итог: ([Количество]*[Цена за единицу])-([Количество]*[Цена за единицу]*[Скидка])
-
Нажмите кнопку ОК.
-
На вкладке Конструктор нажмите кнопку Выполнить. Происходит выполнение запроса, а затем отображается список товаров с промежуточными суммами для каждого заказа.
-
Нажмите клавиши CTRL+S, чтобы сохранить запрос, и назовите его Промежуточные суммы для товаров.
Дополнительные сведения см. в статье Отображение итогов по столбцу в таблице с помощью строки “Итог”.
К началу страницы
Просмотр сводных данных и статистических показателей
При использовании таблиц для записи операций или хранения постоянно встречающихся числовых данных удобно иметь возможность просмотреть статистические показатели для этих данных, например суммарные или средние значения. В Access в таблица можно добавлять итоговую строку. Итоговая строка — это строка внизу таблицы, которая отображает итоговое или другое статистическое значение.
-
Запустите ранее созданный запрос “Итоги по продуктам” и оставьте результаты открытыми в Режим таблицы.
-
На вкладке “Главная” нажмите кнопку “Итоги”. В нижней части таблицы появится новая строка со словом “Итог” в первом столбце.
-
Щелкните ячейку в последней строке с именем Итог.
-
Щелкните стрелку, чтобы просмотреть доступные агрегатные функции. Поскольку столбец содержит текстовые данные, существует только два варианта: “Нет” и “Количество”.
-
Выберите Количество. Содержимое ячейки изменится с Итог на число значений в столбце.
-
Щелкните соседнюю ячейку (второй столбец). Обратите внимание на стрелку, которая появилась в ячейке.
-
Щелкните стрелку и выберите Сумма. В поле будет отображаться сумма значений в столбце.
-
Оставьте запрос открытым в режиме таблицы.
К началу страницы
Создание перекрестного запроса
Теперь предположим, что вы хотите просмотреть суммы для товаров, но также агрегировать данные по месяцам, чтобы в каждой строке отображались суммы для товара, а в каждом столбце отображались суммы за месяц. Чтобы показать подытожи для товара и подытожи за месяц, используйте перекрестный запрос.
Примечание: Перекрестный запрос не может отображаться в веб-приложении Access.
Вы можете снова изменить запрос “Промежуточные суммы для товаров”, чтобы он возвращал строки промежуточных сумм для товаров и столбцы промежуточных сумм по месяцам.
-
На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.
-
В группе “Настройка запроса” нажмите кнопку “Добавить таблицы” (или “Добавить таблицу в Access 2013 “).
-
Дважды щелкните “Заказы”и нажмите кнопку “Закрыть”.
-
На вкладке Конструктор в группе Тип запроса щелкните элемент Перекрестная таблица. В бланке строка Показать скрыта, а отображается строка Перекрестная таблица.
-
В третьем столбце бланка щелкните правой кнопкой мыши строку Поле , а затем выберите в контекстном меню пункт Область ввода. Откроется окно Область ввода.
-
В диалоговом окне Область ввода введите или вставьте следующее выражение: Месяц: “Месяц” & DatePart(“м”, [Дата заказа])
-
Нажмите кнопку ОК.
-
В строке Перекрестная таблица выберите следующие значения в раскрывающемся списке: Заголовки строк для первого столбца, Значение для второго столбца и Заголовки столбцов для третьего.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить. Происходит выполнение запроса, а затем отображаются промежуточные суммы, собранные по месяцам.
-
Нажмите клавиши CTRL+S, чтобы сохранить запрос.
Дополнительные сведения о перекрестных запросах см. в документе “Упростите чтение сводных данных с помощью перекрестного запроса”.
К началу страницы
Создание запроса на создание таблицы
Для создания новой таблицы на основе данных, которые хранятся в других таблицах, можно использовать запрос на создание таблицы.
Примечание: Запрос на таблицу не доступен в веб-приложениях Access.
Например, пусть требуется отправить данные о заказах в Ростове партнеру из Ростова, который использует Access для подготовки отчетов. Вместо отправки всех данных о заказах можно отправить только те данные, которые относятся к заказам в Ростове.
Можно создать запрос на выборку, содержащий данные о заказах в Ростове, а затем использовать этот запрос для создания новой таблицы. Для этого используйте описанную ниже процедуру.
-
Откройте базу данных из предыдущего примера.
Для выполнения запроса на создание таблицы может потребоваться включить содержимое базы данных.
Примечание: Если под лентой вы видите сообщение о включии базы данных, нажмите кнопку “Включить содержимое”.Если база данных уже находится в надежном расположении, вы не увидите панели сообщений.
-
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
-
Дважды щелкните “Сведения о заказе” и “Заказы”.
-
В таблице Заказы дважды щелкните поля Код заказчика и Город получателя, чтобы добавить их в бланк.
-
В таблице Сведения о заказе дважды щелкните элементы Код заказа, Код товара, Количество, Цена за единицу и Скидка, чтобы добавить эти поля в бланк.
-
В столбце Город получателя бланка снимите флажок в строке Показать. В строке Условие отбора введите ‘Ростов’ (включая одинарные кавычки). Проверьте результаты выполнения запроса, прежде чем использовать их для создания таблицы.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
-
Нажмите клавиши CTRL+S, чтобы сохранить запрос.
-
В поле Имя запроса введите Запрос по заказам в Ростове и нажмите кнопку ОК.
-
На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Конструктор.
-
На вкладке Конструктор в группе Тип запроса нажмите кнопку Создание таблицы.
-
В диалоговом окне Создание таблицы в поле Имя таблицы введите Заказы в Ростове и нажмите кнопку ОК.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
-
В диалоговом окне подтверждения нажмите кнопку Да, и в области навигации отобразится новая таблица.
Примечание: Если таблица с указанным именем уже существует, она удаляется перед выполнением запроса.
Дополнительные сведения об использовании запросов на создание таблиц см. в теме “Создание запроса на создание таблицы”.
К началу страницы
Создание запроса на добавление
Для извлечения данных из одной или нескольких таблиц и добавления их в другую таблицу можно использовать запрос на добавление.
Примечание: Запрос на приложение не доступен в веб-приложениях Access.
Предположим, вы создали таблицу для совместной работы с партнером из Ростова, но вспомнили, что этот партнер работает также с клиентами из Казани. Необходимо добавить в эту таблицу строки с данными по Казани. Используя следующую процедуру, можно добавить эти данные в таблицу “Заказы в Ростове”.
-
Откройте запрос “Запрос по заказам в Чикаго”, созданный ранее в конструкторе.
-
На вкладке Конструктор в группе Тип запроса выберите команду Добавить. Откроется диалоговое окно Добавление.
-
В диалоговом окне Добавление щелкните стрелку в поле Имя таблицы и выберите Заказы в Ростове в раскрывающемся списке, а затем нажмите кнопку ОК.
-
В бланке в строке Условие отбора столбца “Город получателя” удалите значение ‘Ростов’ и введите ‘Казань’.
-
В строке Добавление записей в таблицу выберите соответствующее поле для каждого столбца.
В этом примере значения в строке Добавление записей в таблицу должны соответствовать значениям в строке Поле, но это не требуется для нормальной работы запросов на добавление.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
Примечание: При выполнении запроса, который возвращает большое количество данных, может появится сообщение об ошибке, в котором будет сказано, что отменить запрос не удастся. Попробуйте увеличить ограничение сегмента памяти до 3 МБ, чтобы выполнить запрос до конца.
Дополнительные сведения о запросах на добавление см. в статье Добавление записей в таблицу с помощью запроса на добавление.
К началу страницы
Создание запроса на обновление
Для изменения данных в таблицах, а также для ввода условий, указывающих, какие строки следует обновить, можно использовать запрос на обновление. Запрос на обновление позволяет просмотреть обновленные данные перед выполнением обновления.
Важно: Запрос на изменение невозможно отменить. Возможно, перед обновлением следует создать резервные копии всех таблиц, которые будут обновлены запросом на обновление. Запрос на обновление не доступен в веб-приложениях Access.
В предыдущем примере строки были указаны в таблице “Заказы в Чикаго”. В таблице “Заказы в Чикаго” поле “ИД товара” содержит числовой ИД товара. Чтобы сделать данные отчетами более полезными, замените их их наименованиями продуктов. Для этого сделайте следующее:
-
Откройте таблицу “Заказы в Ростове” в конструкторе.
-
В строке “Код товара” измените тип данных Числовой на Текстовый.
-
Сохраните и закройте таблицу “Заказы в Ростове”.
-
На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
-
Дважды щелкните “Заказы в Чикаго” и “Товары”.
-
На вкладке Конструктор в группе Тип запроса нажмите кнопку Обновить.
-
В бланке больше не будут отображаться строки Сортировка и Показать и появится строка Обновление.
-
В таблице Заказы в Ростове дважды щелкните элемент Код товара, чтобы добавить это поле в бланк.
-
В бланке в строке Обновление столбца Код товара введите или вставьте следующую строку: [Товары].[Наименование]
Совет: Запрос на обновление можно использовать для удаления значений полей; для этого используется пустая строка (“”) или значение NULL в строке Обновление.
-
В строке Условие отбора введите или вставьте следующую строку: [Код продукта] Like ([Товары].[Код])
-
Можно узнать, какие значения будут изменены запросом на обновление, просмотрев запрос в режиме таблицы.
-
На вкладке Конструктор выберите Режим >Режим таблицы. Запрос возвращает список кодов товаров, которые будут обновлены.
-
На вкладке Конструктор нажмите кнопку Выполнить.
При открытии таблицы “Заказы в Ростове” можно будет увидеть, что числовые значения в поле “Код товара” заменены наименованиями из таблицы “Товары”.
Дополнительные сведения о запросах на обновление см. в статье Создание и запуск запроса на обновление.
К началу страницы
Создание запроса на удаление
Для удаления данных из таблиц, а также для ввода условий, указывающих, какие строки следует удалить, можно использовать запрос на удаление. Запрос на удаление позволяет просмотреть удаляемые строки перед выполнением удаления.
Примечание: Запрос на удаление не доступен в веб-приложениях Access.
Предположим, готовясь отправить таблицу “Заказы в Ростове” из предыдущего примера партнеру в Ростов, вы заметили, что некоторые строки содержат пустые поля. Перед отправкой таблицы их необходимо удалить. Можно открыть таблицу и удалить строки вручную, но если их много и есть четкие условия отбора, удобнее использовать запрос на удаление.
Вы можете использовать запрос для удаления из таблицы “Заказы в Ростове” строк, в которых отсутствует значение “Код заказа”. Для этого выполните описанную ниже процедуру.
-
На вкладке Создание нажмите кнопку Конструктор запросов.
-
Дважды щелкните “Заказы в Чикаго”.
-
На вкладке Конструктор в группе Тип запроса нажмите кнопку Удаление. В бланке больше не будут отображаться строки Сортировка и Показать и появится строка Удалить.
-
В таблице Заказы в Ростове дважды щелкните поле Код заказа , чтобы добавить его в бланк.
-
В бланке в строке Условие отбора в столбце “Код заказа” введите Is Null.
-
На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.
Дополнительные сведения об удалении запросов см. в теме “Создание и выполнение запроса на удаление”.
К началу страницы
Если вам нужно выбрать определенные данные из одного или нескольких источников, можно воспользоваться запросом на выборку. Запрос на выборку позволяет получить только необходимые сведения, а также помогает объединять информацию из нескольких источников. В качестве источников данных для запросов на выборку можно использовать таблицы и другие такие же запросы. В этом разделе вкратце рассматриваются запросы на выборку и предлагаются пошаговые инструкции по их созданию с помощью Мастера запросов либо в Конструктор.
Если вы хотите узнать больше о принципах работы запросов на примере базы данных Northwind, ознакомьтесь со статьей Общие сведения о запросах.
В этой статье
-
Overview
-
Создание запроса SELECT с помощью мастера запросов
-
Создание запроса в режиме конструктора
Общие сведения
Когда возникает потребность в каких-то данных, редко бывает необходимо все содержимое одной таблицы. Например, если вам нужна информация из таблицы контактов, как правило, речь идет о конкретной записи или только о номере телефона. Иногда бывает необходимо объединить данные сразу из нескольких таблиц, например совместить информацию о клиентах со сведениями о заказчиках. Для выбора необходимых данных используются запросы на выборку.
Запрос на выборки — это объект базы данных, в который в Режим таблицы. Запрос не хранит данные, а отображает данные, хранимые в таблицах. Запрос может показывать данные из одной или нескольких таблиц, из других запросов или из их сочетания.
Преимущества запросов
Запрос позволяет выполнять перечисленные ниже задачи.
-
Просматривать значения только из полей, которые вас интересуют. При открытии таблицы отображаются все поля. Вы можете сохранить запрос, который выдает лишь некоторые из них.
Примечание: Запрос только возвращает данные, но не сохраняет их. При сохранении запроса вы не сохраняете копию соответствующих данных.
-
Объединять данные из нескольких источников. В таблице обычно можно увидеть только те сведения, которые в ней хранятся. Запрос позволяет выбрать поля из разных источников и указать, как именно нужно объединить информацию.
-
Использовать выражения в качестве полей. Например, в роли поля может выступить функция, возвращающая дату, а с помощью функции форматирования можно управлять форматом значений из полей в результатах запроса.
-
Просматривать записи, которые отвечают указанным вами условиям. При открытии таблицы отображаются все записи. Вы можете сохранить запрос, который выдает лишь некоторые из них.
Основные этапы создания запроса на выборку
Вы можете создать запрос на выборку с помощью мастера или конструктора запросов. Некоторые элементы недоступны в мастере, однако их можно добавить позже из конструктора. Хотя это разные способы, основные этапы аналогичны.
-
Выберите таблицы или запросы, которые хотите использовать в качестве источников данных.
-
Укажите поля из источников данных, которые хотите включить в результаты.
-
Также можно задать условия, которые ограничивают набор возвращаемых запросов записей.
Создав запрос на выборку, запустите его, чтобы посмотреть результаты. Чтобы выполнить запрос на выборку, откройте его в режиме таблицы. Сохранив запрос, вы сможете использовать его позже (например, в качестве источника данных для формы, отчета или другого запроса).
Создание запроса на выборку с помощью мастера запросов
Мастер позволяет автоматически создать запрос на выборку. При использовании мастера вы не полностью контролируете все детали процесса, однако таким способом запрос обычно создается быстрее. Кроме того, мастер иногда обнаруживает в запросе простые ошибки и предлагает выбрать другое действие.
Подготовка
Если вы используете поля из источников данных, которые не связаны между собой, мастер запросов предлагает создать между ними отношения. Он откроет окно отношений, однако если вы внесете какие-то изменения, то вам потребуется перезапустить мастер. Таким образом, перед запуском мастера имеет смысл сразу создать все отношения, которые потребуются вашему запросу.
Дополнительную информацию о создании отношений между таблицами можно найти в статье Руководство по связям между таблицами.
Использование мастера запросов
-
На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов.
-
В диалоговом окне Новый запрос выберите пункт Простой запрос и нажмите кнопку ОК.
-
Теперь добавьте поля. Вы можете добавить до 255 полей из 32 таблиц или запросов.
Для каждого поля выполните два указанных ниже действия.
-
В разделе Таблицы и запросы щелкните таблицу или запрос, содержащие поле.
-
В разделе Доступные поля дважды щелкните поле, чтобы добавить его в список Выбранные поля. Если вы хотите добавить в запрос все поля, нажмите кнопку с двумя стрелками вправо (>>).
-
Добавив в запрос все необходимые поля, нажмите кнопку Далее.
-
-
Если вы не добавили ни одного числового поля (поля, содержащего числовые данные), перейдите к действию 9. При добавлении числового поля вам потребуется выбрать, что именно вернет запрос: подробности или итоговые данные.
Выполните одно из указанных ниже действий.
-
Если вы хотите просмотреть отдельные записи, выберите пункт подробный и нажмите кнопку Далее. Перейдите к действию 9.
-
Если вам нужны итоговые числовые данные, например средние значения, выберите пункт итоговый и нажмите кнопку Итоги.
-
-
В диалоговом окне Итоги укажите необходимые поля и типы итоговых данных. В списке будут доступны только числовые поля.
Для каждого числового поля выберите одну из перечисленных ниже функций.
-
Sum — запрос вернет сумму всех значений, указанных в поле.
-
Avg — запрос вернет среднее значение поля.
-
Min — запрос вернет минимальное значение, указанное в поле.
-
Max — запрос вернет максимальное значение, указанное в поле.
-
-
Если вы хотите, чтобы в результатах запроса отобразилось число записей в источнике данных, установите соответствующий флажок Подсчет числа записей в (название источника данных).
-
Нажмите ОК, чтобы закрыть диалоговое окно Итоги.
-
Если вы не добавили в запрос ни одного поля даты и времени, перейдите к действию 9. Если вы добавили в запрос поля даты и времени, мастер запросов предложит вам выбрать способ группировки значений даты. Предположим, вы добавили в запрос числовое поле (“Цена”) и поле даты и времени (“Время_транзакции”), а затем в диалоговом окне Итоги указали, что хотите отобразить среднее значение по числовому полю “Цена”. Поскольку вы добавили поле даты и времени, вы можете подсчитать итоговые величины для каждого уникального значения даты и времени, например для каждого месяца, квартала или года.
Выберите период, который хотите использовать для группировки значений даты и времени, а затем нажмите кнопку Далее.
Примечание: В режиме конструктора для группировки значений по периодам можно использовать выражения, однако в мастере доступны только указанные здесь варианты.
-
На последней странице мастера задайте название запроса, укажите, хотите ли вы открыть или изменить его, и нажмите кнопку Готово.
Если вы решили открыть запрос, он отобразит выбранные данные в режиме таблицы. Если вы решили изменить запрос, он откроется в режиме конструктора.
К началу страницы
Создание запроса в режиме конструктора
В режиме конструктора можно вручную создать запрос на выборку. В этом режиме вы полнее контролируете процесс создания запроса, однако здесь легче допустить ошибку и необходимо больше времени, чем в мастере.
Создание запроса
-
Действие 1. Добавьте источники данных
-
Действие 2. Соедините связанные источники данных
-
Действие 3. Добавьте выводимые поля
-
Действие 4. Укажите условия
-
Действие 5. Рассчитайте итоговые значения
-
Действие 6. Просмотрите результаты
Действие 1. Добавьте источники данных
При использовании конструктора для добавления источников данных их источники и поля добавляются в отдельных шагах. Однако вы всегда можете добавить дополнительные источники позже.
-
На вкладке Создание в группе Другое нажмите кнопку Конструктор запросов.
-
Дважды щелкните каждый источник данных, который вы хотите использовать, или выберите каждый из них, а затем нажмите кнопку “Добавить”.
Автоматическое соединение
Если между добавляемыми источниками данных уже заданы отношения, они автоматически добавляются в запрос в качестве соединений. Соединения определяют, как именно следует объединять данные из связанных источников. Access также автоматически создает соединение между двумя таблицами, если они содержат поля с совместимыми типами данных и одно из них — первичный ключ.
Вы можете настроить соединения, добавленные приложением Access. Access выбирает тип создаваемого соединения на основе отношения, которое ему соответствует. Если Access создает соединение, но для него не определено отношение, Access добавляет внутреннее соединение.
Если приложение Access при добавлении источников данных автоматически создало соединения правильных типов, вы можете перейти к действию 3 (добавление выводимых полей).
Повторное использование одного источника данных
В некоторых случаях необходимо соединить две копии одной и той же таблицы или запроса, называемые запросом самосоединение, которые объединяют записи из одной таблицы при совпадении значений в соединитьые поля. Например, допустим, что у вас есть таблица “Сотрудники”, в которой в поле “ОтчетЫВ” для записи каждого сотрудника вместо имени отображается его имя руководителя. Вместо этого вы можете самостоятельно отобразить имя руководителя в записях каждого сотрудника.
При добавлении источника данных во второй раз Access присвоит имени второго экземпляра окончание “_1”. Например, при повторном добавлении таблицы “Сотрудники” ее второй экземпляр будет называться “Сотрудники_1”.
Действие 2. Соедините связанные источники данных
Если у источников данных, которые вы добавляете в запрос, уже есть связи, Access автоматически создает внутреннее присоединение для каждой связи. Если целостность данных, access также отображает “1” над линией связи, чтобы показать, какая таблица находится на стороне “один” отношение “один-ко-многим”, и символ бесконечности(∞),чтобы показать, какая таблица находится на стороне “многие”.
Если вы добавили в запрос другие запросы и не создали между ними отношения, Access не создает автоматических соединений ни между ними, ни между запросами и таблицами, которые не связаны между собой. Если Access не создает соединения при добавлении источников данных, как правило, их следует создать вручную. Источники данных, которые не соединены с другими источниками, могут привести к проблемам в результатах запроса.
Кроме того, можно сменить тип соединения с внутреннего на внешнее соединение, чтобы запрос включал больше записей.
Добавление соединения
-
Чтобы создать соединение, перетащите поле из одного источника данных в соответствующее поле в другом источнике.
Access добавит линию между двумя полями, чтобы показать, что они соединены.
Изменение соединения
-
Дважды щелкните соединение, которое требуется изменить.
Откроется диалоговое окно Параметры соединения.
-
Ознакомьтесь с тремя вариантами в диалоговом окне Параметры соединения.
-
Выберите нужный вариант и нажмите кнопку ОК.
После создания соединений можно добавить выводимые поля: они будут содержать данные, которые должны отображаться в результатах.
Действие 3. Добавьте выводимые поля
Вы можете легко добавить поле из любого источника данных, добавленного в действии 1.
-
Для этого перетащите поле из источника в верхней области окна конструктора запросов вниз в строку Поле бланка запроса (в нижней части окна конструктора).
При добавлении поля таким образом Access автоматически заполняет строку Таблица в таблице конструктора в соответствии с источником данных поля.
Совет: Чтобы быстро добавить все поля в строку “Поле” бланка запроса, дважды щелкните имя таблицы или запроса в верхней области, чтобы выделить все поля в нем, а затем перетащите их все сразу вниз на бланк.
Использование выражения в качестве выводимого поля
Вы можете использовать выражение в качестве выводимого поля для вычислений или создания результатов запроса с помощью функции. В выражениях могут использоваться данные из любых источников запроса, а также функции, например Format или InStr, константы и арифметические операторы.
-
В пустом столбце таблицы запроса щелкните строку Поле правой кнопкой мыши и выберите в контекстном меню пункт Масштаб.
-
В поле Масштаб введите или вставьте необходимое выражение. Перед выражением введите имя, которое хотите использовать для результата выражения, а после него — двоеточие. Например, чтобы обозначить результат выражения как “Последнее обновление”, введите перед ним фразу Последнее обновление:.
Примечание: С помощью выражений можно выполнять самые разные задачи. Их подробное рассмотрение выходит за рамки этой статьи. Дополнительные сведения о создании выражений см. в статье Создание выражений.
Действие 4. Укажите условия
Этот этап является необязательным.
С помощью условий можно ограничить количество записей, которые возвращает запрос, выбирая только те из них, значения полей в которых отвечают заданным критериям.
Определение условий для выводимого поля
-
В таблице конструктора запросов в строке Условие отбора поля, значения в котором вы хотите отфильтровать, введите выражение, которому должны удовлетворять значения в поле для включения в результат. Например, чтобы включить в запрос только записи, в которых в поле “Город” указано “Рязань”, введите Рязань в строке Условие отбора под этим полем.
Различные примеры выражений условий для запросов можно найти в статье Примеры условий запроса.
-
Укажите альтернативные условия в строке или под строкой Условие отбора.
Когда указаны альтернативные условия, запись включается в результаты запроса, если значение соответствующего поля удовлетворяет любому из указанных условий.
Условия для нескольких полей
Условия можно задать для нескольких полей. В этом случае для включения записи в результаты должны выполняться все условия в соответствующей строке Условия отбора либо Или.
Настройка условий на основе поля, которое не включается в вывод
Вы можете добавить в запрос поле, но не включать его значения в выводимые результаты. Это позволяет использовать содержимое поля для ограничения результатов, но при этом не отображать его.
-
Добавьте поле в таблицу запроса.
-
Снимите для него флажок в строке Показывать.
-
Задайте условия, как для выводимого поля.
Действие 5. Рассчитайте итоговые значения
Этот этап является необязательным.
Вы также можете вычислить итоговые значения для числовых данных. Например, может потребоваться узнать среднюю цену или общий объем продаж.
Для расчета итоговых значений в запросе используется строка Итого. По умолчанию строка Итого не отображается в режиме конструктора.
-
Когда запрос открыт в конструкторе, на вкладке “Конструктор” в группе “Показать или скрыть” нажмите кнопку Итоги.
Access отобразит строку Итого на бланке запроса.
-
Для каждого необходимого поля в строке Итого выберите нужную функцию. Набор доступных функций зависит от типа данных в поле.
Дополнительные сведения о функциях строки “Итого” в запросах см. в статье Суммирование или подсчет значений в таблице с помощью строки “Итого”.
Действие 6. Просмотрите результаты
Чтобы увидеть результаты запроса, на вкладке “Конструктор” нажмите кнопку Выполнить. Access отобразит результаты запроса в режиме таблицы.
Чтобы вернуться в режим конструктора и внести в запрос изменения, щелкните Главная > Вид > Конструктор.
Настраивайте поля, выражения или условия и повторно выполняйте запрос, пока он не будет возвращать нужные данные.
К началу страницы
Приложение СУБД MS Access – это полноценный помощник для создания и ведения баз данных, заключенных в таблицы и массивы. Если база имеет слишком большой объем, быстро найти необходимые значения довольно сложно.
Именно поэтому в Access существует такая функция, как запросы. Рассмотрим, что это такое, как работает, какие имеет особенности.
Создание запросов в Microsoft Access
Чтобы разобраться, как создавать запросы в Access, нужно знать основные положения работы с СУБД.
Существует два способа выполнить данную процедуру:
- Конструктор запросов.
- Мастер запросов.
Первый способ дает возможность создать любой из всех доступных запросов в ручном режиме, но с небольшой оговоркой, заключающейся в том, что пользователь имеет опыт работы с приложением Access. Также он должен разбираться хотя бы в основных его задачах. Что касается второго способа, то его нужно рассмотреть более подробно.
Легкий путь для новичков
Знающий человек за несколько кликов мышью выбирает те компоненты, которые потребуются пользователю для выполнения запроса, а затем быстро формирует реестр, в соответствии с собранными ключевыми значениями. Если это первое знакомство с СУБД, и пользователь не представляет, как создавать запросы в Access, то выбирается программа Мастер.
В данном режиме можно ознакомиться и разобраться со следующими типами запросов:
- Простой.
- Перекрестный.
- Записи без подчиненных.
- Повторяющиеся записи.
Данный выбор осуществляется уже на первом этапе работы с Мастером. А в дальнейшем, следуя четким указаниям, даже начинающий пользователь легко создаст запрос. Познакомимся с его разновидностями.
Простой запрос
Этот инструмент работы с таблицами собирает нужные данные из указанных пользователем полей. Уже по названию видно, что это самый популярный тип запросов для новичков. Его удобство заключается в том, что такая процедура открывается в новой вкладке. Поэтому ответ на вопрос, как создать запрос в Access 2010, становится очевидным уже после открытия первого меню Мастера.
Перекрестный запрос
Этот тип выборки более сложный. Чтобы разобраться, как создать перекрестный запрос в Access с помощью “Мастера” в данном режиме, нужно кликнуть по этой функции в первом окне.
На экране появится таблица, в которой можно выбрать до трех столбцов, расположенных в оригинале.
Одно из оставшихся не выбранных полей может быть использовано в качестве заголовков таблицы запроса. На третьем этапе процедуры (пересечение) выбирается еще одно значение с вариативностью функцию (среднее значение, сумма, первый, последний).
На фото показано, что перекрестный запрос создан, и что по заданным параметрам совершены необходимые действия.
Повторяющиеся записи
Как понятно из названия, основное предназначение данного запроса – выборка всех одинаковых строк в таблице по указанным параметрам. Выглядит это так:
Кроме того, доступен выбор дополнительных полей, чтобы подобрать соответствие сразу в нескольких строках.
Чтобы выбрать повторяющиеся записи, нужно раскрыть список запросов и создать там новую папку. Далее в окошке “Новый запрос” выбрать строку “Поиск повторяющихся записей”. Далее нужно следовать указаниям Мастера.
Записи без подчиненных
Это последний тип запросов, доступный в режиме “Мастер – Записи без подчиненных”.
В этом случае ведется выборка только тех значений, которые не задействованы ни в одном поле таблиц и запросов, но которые уже созданы.
Данный тип актуален только в случаях, когда баз данных несколько.
Все эти четыре типа запросов являются базовой точкой для работы со сложными элементами, но позволяют легко разобраться, как создать запрос в базе данных Access.
Функции запросов в MS Access
Разберемся, зачем нужно выполнять описанные выше действия. Задача всех простых и сложных запросов в СУБД Access заключается в следующем:
- Сбор необходимых данных в таблицах, их последующих просмотр, редактирование, добавление новых значений.
- Прекрасный исходный материал для подготовки всевозможных форм отчетности.
- Проведение математических и статистических счетных процедур над целыми массивами данных с выводом итогов на экран (среднее значение, сумма, отклонение, итоги).
Запрос на выборку
Этот тип работы с базами данных является сложным, так как требует участия нескольких таблиц.
Необходимо, чтобы во всех таблицах были общие ключевые поля. В противном случае совершить операцию не получится.
Повторим, как создать запрос на выборку в Access. Сначала нужно создать простой запрос с выбором нужных полей. Уже здесь можно редактировать данные, чтобы привести их в желаемый вид. К слову, внесенные изменения перенесутся и в исходные таблицы, так что этот момент нужно учитывать.
В открывшемся окне конструктора заполняется окно «Добавление таблиц». Здесь нужно добавить те таблицы или запросы, из которых нужно вытаскивать исходные значения.
После добавления можно приступить к заполнению условий запроса. Для этого нам нужна строка «Поле». В ней нужно подобрать те значения из таблиц, которые будут отображаться при запросе.
Чтобы завершить операцию, нужно нажать на кнопку “Выполнить”.
Запрос с параметрами
Это еще одна разновидность сложной процедуры, которая потребует от пользователя определенных навыков работы с базами данных. Одним из главных направлений такого действия является подготовка к созданию отчетов с объемными данными, а также получение сводных результатов. Как создавать запросы в Access 2007 с помощью конструктора, будет рассмотрено ниже.
Начинать данную процедуру по выборке данных нужно с создания простого запроса, чтобы выбрать нужные поля. Далее через режим Конструктора обязательно нужно заполнить поле «Условие отбора» и, уже исходя из внесенного значения, будет осуществляться отбор.
Таким образом, на вопрос о том, как создать запрос с параметром в Access, ответ простой – внести исходные параметры для выборки. Чтобы работать с Конструктором необходимо пользоваться Мастером запросов. Там создается первичные данные для фильтрации, которые служат основой дальнейшей работы.
Расширенный перекрестный запрос
Продолжаем усложнять ситуацию. Еще труднее для понимания является информация о том, как создавать запросы в Access, если присутствует несколько таблиц с данными. Перекрестный запрос уже рассматривался выше, как один из вариантов работы с Мастером. Однако, и в режиме “Конструктора” можно создавать подобный запрос.
Для этого необходимо нажать «Конструктор запросов» – «Перекрестный».
Открывается меню добавления исходных таблиц, а также возможность заполнения выборочных полей. Единственное, на что следует обратить внимание, – пункты «групповая операция» и «перекрестная таблица». Их нужно заполнять правильно, иначе процедура не будет выполнена корректно.
Перекрестные запросы – это наиболее простой способ поиска и выборки информации из нескольких источников данных, плюс с возможностью формирования диаграмм и графиков.
Более того, при использовании данной процедуры быстрее выполняется поиск, даже с несколькими вариантами развития.
Конечно, присутствуют и «подводные камни», которые могут помешать в работе. Например, при создании запроса на сортировку базы данных по значению столбцов система выдает ошибку. То есть доступна только сортировка по стандартным пунктам – «возрастание и убывание».
Краткие рекомендации
Подводя итоги, нужно сказать, что решить, как создавать запросы в Access – с помощью Мастера или Конструктора, должен сам пользователь. Хотя, для большинства людей, которые используют СУБД MS Access, больше подойдет первый вариант. Ведь Мастер сам сделает всю работу, оставив для пользователя только несколько кликов мышью, при выборе условий запроса.
Чтобы использовать расширенные настройки, явно необходим опыт работы с базами данных на уровне профессионала. Если в работе задействованы большие базы, лучше всего обратиться к специалистам, дабы избежать нарушения работы СУБД и возможных потерь данных.
Есть один момент, который доступен лишь программистам. Так как основным языком СУБД является SQL, то нужный запрос можно написать в виде программного кода. Чтобы работать в данном режиме, достаточно нажать на строку уже созданного запроса, и в открывшемся контекстном меню выбрать «Режим SQL».
Программа Access от компании Microsoft предоставляет пользователям широкие возможности для создания и работы с базами данных. В наше время базы данных очень широко используются во всевозможных сферах и областях. В целом, можно сказать, что сейчас без них не обойтись. В связи с этим, очень важно уметь работать с таблицами Access. Основным элементом взаимодействия пользователя с базой данных является запрос. В этой статье подробно рассмотрим, как создать запрос в Access. Давайте же начнём. Поехали!
Прежде всего, разберёмся с тем, что такое запрос. Это элемент базы данных, который служит для выбора нужной информации из таблицы. Они бывают двух видов:
- На выборку (позволяют получать данные и выполнять операции над ними);
- На изменение (позволяют добавлять, удалять и изменять значения).
Теперь перейдём непосредственно к практике. Зайдите на вкладку «Создание» и нажмите кнопку «Конструктор запросов». В открывшемся окне выберите одну или несколько таблиц, из которых необходимо выбрать данные. Нажав кнопку «Выполнить», вы получите всю информацию из выбранных вами таблиц. Для более конкретного отбора перейдите на вкладку «Конструктор» и введите нужное слово или число в поле «Условие отбора:». Например, вы хотите получить список всех сотрудников 1980 года рождения. Для этого пропишите в строке «Условие отбора:» 1980 в колонке «Дата рождения» и нажмите кнопку «Выполнить». Программа моментально выдаст вам результат. Для удобства вы можете сохранить созданный запрос, чтобы пользоваться им в дальнейшем. Воспользуйтесь комбинацией клавиш Ctrl+S и введите название в соответствующем поле, а после нажмите «ОК».
Указав условие для отбора данных, мы получаем нужную выборку
Чтобы посчитать значения в столбце, вы можете использовать так называемые групповые операции. Для этого на вкладке «Конструктор» кликните по кнопке «Итоги». В появившейся строке «Группировка» выберите функцию «Count», позволяющую сложить все ненулевые значения. Чтобы в названии колонки не выводилось слово «Count», в строке «Поле» введите название перед тем, что было указано ранее. Сохранение выполняется точно также при помощи комбинации Ctrl+S.
Аксесс считает непустые ячейки
Теперь создадим параметрический запрос. Он позволяет делать выборку по введённому параметру. Например, по заданной дате. Открыв нужную базу данных, пропишите (без кавычек) в соответствующем столбце «[Укажите дату]». Квадратные скобки обязательны. В появившемся окне введите нужную дату. После этого программа автоматически произведёт выборку по введённой вами дате. Вы можете поставить знаки «>» (больше) и «<» (меньше) чтобы отобразить элементы раньше либо позже заданной даты. Например, список сотрудников, которые сдали отчёты до 01.07.
Как создать перекрёстное обращение? Достаточно найти на панели инструментов кнопку «Перекрёстный» и кликнуть по ней. После этого в пункте «Перекрёстная таблица» выберите в первой ячейке «Заголовки строк», во второй «Заголовки столбцов», а в третьей «Значение». Затем вы можете посчитать значения, использовав уже упомянутую выше функцию «Count». Обратите внимание, что если вы укажете во второй ячейке «Заголовки строк», так же, как в первой, вместо «Заголовки столбцов», то ничего работать не будет. Обязательно учитывайте это.
Делаем перекрестный запрос в базе
Также вы можете сделать обращение на создание таблицы. Как это делается? Достаточно открыть базы данных, с которыми вы работаете, затем заполнить ячейку «Условие отбора» и кликнуть по кнопке «Создание таблицы». Не забывайте нажимать «Выполнить». На основе заданных вами параметров Microsoft Access построит новую таблицу. Например, список всех сотрудников с их контактными данными по профессии «Бухгалтер».
При сохранении нужно указать имя и место размещения новой таблицы
Как вы можете убедиться, программа Access от компании Microsoft позволяет выполнять множество операций. Зная, как сделать запрос в Access, вы будете чувствовать себя значительно увереннее при работе с базами данных. Пишите в комментариях была ли полезна для вас эта статья и задавайте вопросы по рассмотренной теме.