Semenalidery.com

IT Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Объединение таблиц и запросов

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

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

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

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

В этой статье

Обзор

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

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

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

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

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

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

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

В этой области определяется тип соединения: вариант 1 — это внутреннее соединение, 2 — левое внешнее соединение, а 3 — правое внешнее соединение.

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

Типы соединений

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

Внутренние соединения: объединены только связанные данные из обеих таблиц.

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

Внешние соединения: все связанные данные правильно объединены и все оставшиеся записи из одной таблицы

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

Полные внешние соединения: все данные, в сочетании с возможными возможностями

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

Перекрестные соединения: все данные объединены каждый из возможных способов

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

Объединение по несовпадению: как обычное соединение, но с использованием другого сравнения для объединения строк

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

Показывать строки, в которых есть общее значение в обеих Объединенных таблицах

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

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

Как использовать внутреннее соединение?

В большинстве случаев вам не нужно ничего делать, чтобы использовать внутреннее соединение. Если таблицы, добавленные в запрос, уже имеют отношения, Access автоматически создает внутреннее соединение между каждой парой связанных таблиц при добавлении таблиц. Если используется целостность данных, Access также отображает «1» над линией соединения, чтобы показать, какая таблица находится на стороне «один» элемента отношение «один-ко-многим» и символ бесконечности (), чтобы показать, какая таблица находится на стороне «многие».

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

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

Синтаксис SQL для внутреннего соединения

Внутренние соединения задаются в SQL в предложении FROM, как показано ниже.

FROM таблица1 INNER JOIN таблица2 ON таблица1.field1 сравнить Table2.поле2

Операция INNER JOIN состоит из следующих элементов:

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

Конструкторне распознает некоторые редкие методы языка SQL. Их можно применить, только откорректировав команду SQL в Режиме SQL,и после внесения этих изменений вы больше не сможете просмотреть ваш запрос в Конструкторе(пока позже не удалите непод­держиваемое изменение).

Запрос на объединение (union query) — один из примеров запросов, временами очень по­лезных, но не поддерживаемых в Конструкторезапросов. Запрос на объединение объединя­ет результаты из нескольких таблиц и затем представляет их на общем листе данных.

По сути, запрос на объединение составляется из двух (или нескольких) отдельных за­просов на выборку. Тонкость заключается в том, что структура результатов всех запросов на выборку должна быть одинаковой. Таким образом, следует извлечь аналогичные столбцы из каждой таблицы в одном итом же порядке. Если вы выполнили все перечисленные требова­ния, остается только вставить слово union между двумя запросами.

Читать еще:  Базовый объект access

Далее приведен запрос на объединение, который представляет список имен и фамилий, полученный из двух таблиц — Customersи Employees:

SELECT Customers.FirstName, Customers.LastName

SELECT Employees . FirstName, Employees . LastName

Этот запрос функционирует, несмотря на то, у таблиц Customersи Employeesразная структура. Но гораздо важнее то, что структура результатов запросов к обеим таблицам, в данном случае поля FirstNameи LastName,совпадает.

ПРИМЕЧАНИЕ

Создать запрос на объединение можно, даже если имена столбцов отличаются — если в таб­лице Employeesсодержатся столбцы с именами F_Nameи L_Name,запрос все равно будет выполняться. Программа Access просто использует имена столбцов из первого запроса при выводе результатов на лист данных.

В данном примере, когда вы просматриваете результаты запроса, на экран выводится список имен и фамилий клиентов, за которым следует список имен и фамилий сотрудников, хотя вы не сможете с уверенностью определить, где заканчивается одна таблица и начинает­ся другая. Вы также не сможете редактировать данные — запросы на объединение предна­значены исключительно для просмотра сведений, а не для их изменения. Программа Access не позволит вам редактировать запросы на объединение в Конструкторезапросов. Если вы щелкнете правой кнопкой мыши заголовок вкладки и выберете Конструктор,вместо конст­руктора вы попадете в Режим SQL.

Программа помещает запросы па объединение в группу Несвязанные объекты (Unrelated Objects) в области переходов и применяет для их обозначения пиктограмму, от­личающуюся от пиктограммы обычного запроса (рис. 6.14).

Примечание

Если в результатах запроса на объединение выявляются совпадения, на экран выводится одна копия. Это поведение можно изменить, если заменить слово UNION словосочетанием UNION ALL. В предыдущем примере этот шаг вызовет повторное отображение в объединенных ре­зультатах человека, являющегося и клиентом, и сотрудником.

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

Запросы на объединение — это хороший способ соединения двух аналогичных таблиц, которые были разделены из соображений производительности, безопасности или способа распространения. (См. в разд. «Подготовка вашей базы данных» главы 18 различные причи­ны деления одного набора данных на несколько разных таблиц.) Эти запросы неудобны для обработки отношений «родитель — потомок». Для этой задачи вам нужны запросы на вы­борку с объединением таблиц (join queries), описанные в следующем разделе.

Просмотр результатов нескольких запросов с помощью запроса на объединение

Иногда может потребоваться добавить записи из нескольких таблиц или запросов в один список. Для этого в Access можно использовать запрос на объединение.

Чтобы хорошо понимать запросы на объединение, нужно уметь создавать базовые запросы на выборку в Access. Подробнее о них читайте в статье Создание простого запроса на выборку.

Примечание: Эта статья относится только к классическим базам данных Access. В веб-базах данных и веб-приложениях Access нельзя создавать или использовать запросы на объединение.

Пример запроса на объединение

Если вы никогда не создавали запросов на объединение, начните с изучения рабочего примера в шаблоне «Борей» Access. Вы можете найти ее на начальной странице Access, выбрав Файл > Создать, или скачать с этого сайта.

Открыв базу данных «Борей» в Access, закройте диалоговое окно входа, а затем разверните область навигации. Щелкните значок в ее верхней части и выберите Тип объекта, чтобы упорядочить все объекты базы данных по их типу. Затем разверните группу Запросы. Вы увидите запрос Операции с товарами.

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

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

Продолжим изучение примера. Выберем Главная > Режимы > Режим SQL, чтобы просмотреть синтаксис SQL, который определяет запрос на объединение. На этом рисунке мы добавили в него пробелы, чтобы выделить части запроса.

Изучим синтаксис SQL этого запроса на объединение из базы данных «Борей» подробнее:

Первая и третья части этой инструкции SQL по сути являются запросами на выборку. Эти запросы получают два разных набора записей: из таблицы Заказы на товары и из таблицы Закупки товаров.

Вторая часть инструкции — ключевое слово UNION, которое указывает, что запрос будет объединять эти два набора записей.

Последняя часть с инструкцией ORDER BY определяет порядок объединенных записей. В этом примере все записи будут упорядочены по полю «Дата размещения» в порядке убывания.

Примечание: Запросы на объединение всегда доступны только для чтения; вы не сможете изменить никакие значения в режиме таблицы.

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

Хотя запрос на объединение можно написать непосредственно в режиме SQL, гораздо удобнее создавать его по частям, используя запросы на выборку. Затем можно скопировать части кода SQL и вставить их в общий запрос на объединение.

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

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

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

Закройте диалоговое окно Добавление таблицы.

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

Дополнительно к полям можно добавить условия, введя соответствующие выражения в строке «Условия» сетки полей.

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

Переключите запрос в конструктор.

Сохраните запрос на выборку и не закрывайте его.

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

Теперь следует объединить созданные запросы на выборку. На этом этапе нужно создать запрос на объединение, скопировав и вставив инструкции SQL.

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

Закройте диалоговое окно Добавление таблицы.

На вкладке Конструктор в группе Тип запроса щелкните Объединение. Access скроет окно конструктора запросов и отобразит вкладку объекта в режиме SQL. На данном этапе эта вкладка будет пуста.

Щелкните вкладку первого запроса на выборку, который вы хотите добавить в запрос на объединение.

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

Скопируйте инструкцию SQL для запроса на выборку. Щелкните вкладку запроса на объединение, который вы начали создавать ранее.

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

Удалите точку с запятой (;) в конце инструкции SQL для запроса на выборку.

Нажмите клавишу ВВОД, чтобы переместить курсор на строку ниже, и введите в новой строке слово UNION.

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

Повторите действия 5—10, пока не будут скопированы и вставлены все инструкции SQL для запросов на выборку в окне режима SQL запроса на объединение. Не удаляйте точку с запятой и не вводите ничего после инструкции SQL в последнем запросе на выборку.

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

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

Пример создания запроса на объединение

В этом разделе приведен пример, который вы можете воссоздать в базе данных «Борей». Этот запрос на объединение собирает имена людей из таблицы Customers и объединяет их с именами из таблицы Поставщики. Чтобы изучить пример, выполняйте эти инструкции в своей копии базы данных «Борей».

Чтобы создать запрос, нужно выполнить следующие действия:

Создайте два запроса на выборку («Запрос1» и «Запрос2»), указав в качестве источников их данных таблицы Customers и «Поставщики» соответственно. В качестве отображаемых значений используйте поля «Имя» и «Фамилия».

Создайте запрос («Запрос3»), в котором изначально нет источника данных, и нажмите кнопку Объединение на вкладке Конструктор, чтобы сделать его запросом на объединение.

Скопируйте инструкции SQL из запросов «Запрос1» и «Запрос2» и вставьте их в «Запрос 3». Не забудьте удалить лишнюю точку с запятой и добавить ключевое слово UNION. Вы можете проверить результаты в режиме таблицы.

Читать еще:  Ключ активации офис 2020 лицензионный ключ

Добавьте в один из запросов предложение, определяющее порядок записей, а затем вставьте инструкцию ORDER BY в запросе на объединение в режиме SQL. Обратите внимание на то, что при добавлении инструкции ORDER BY в «Запрос3» сначала удаляются точки с запятой, а затем названия таблиц из имен полей.

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

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

В оставшихся разделах этой статьи вы найдете дополнительные советы и рекомендации по использованию запросов на объединение.

В предыдущем примере мы объединили данные только из двух таблиц базы данных «Борей». Однако в запрос на объединение очень легко добавить больше таблиц. Например, в результаты приведенного выше запроса может также потребоваться включить имена сотрудников. Для этого добавьте третий запрос и объедините его с существующей инструкцией SQL, используя еще одно ключевое слово UNION:

Если открыть результаты в режиме таблицы, вы увидите список всех сотрудников. Для них будет указано то же название компании, что, вероятно, не очень полезно. Если вы хотите, чтобы в этом поле указывалось, является ли человек штатным сотрудником или же относится к поставщику или клиенту, вы можете добавить статическое значение вместо названия компании. Вот как при этом будет выглядеть код SQL:

В режиме таблицы будут выведены следующие результаты (Access отображает пять примеров записей):

Практическая работа «Access. Создание Запросов»

Перед работой Вам необходимо создать таблицы и связи:

Типы запросов

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

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

Существует два варианта построения: в режиме Мастера и в режиме Конструктора.

1. Создание запроса в режиме Мастера.

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

• в основном окне базы данных необходимо выбрать объект Запросы, затем на панели инструментов основного окна нажать кнопку Создать и в открывшемся диалоговом окне Новый запрос (рис. 12) выбрать строку Простой запрос:

Рис. 12. Окно Новый запрос

• мастер запросов можно вызвать сразу, если в объекте Запросы дважды щелкнуть по надписи Создание запроса с помощью мастера.

В обоих случаях будет открыто диалоговое окно Создание простых запросов для выбора полей (рис. 13)

Рис. 13. Окно Создание простых запросов. Шаг первый В окне списка Таблицы и запросы надо выбрать таблицу, из которой будут отбираться данные, после чего в окне Доступные поля автоматически появится список полей выбранной таблицы. Нужные поля отбираются в окно Выбранные поля с помощью стрелок, расположенных между окнами (одинарная стрелка переносит одно выделенное поле в одну или другую сторону, двойная — переносит все).

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

Рис. 14. Окно Создание простых запросов. Шаг второй

На втором шаге требуется поставить точку в строке Подробный (вывод каждого поля каждой записи). Кнопка Далее откроет окно третьего шага (рис. 15).

Рис. 15. Окно Создание простых запросов. Шаг третий

В последнем окне необходимо задать имя запроса. Кнопка Готово выведет на экран запрос в режиме таблицы (рис. 16)

Рис. 16. Новая таблица, созданная мастером запросов

2. Создание запроса в режиме Конструктора (основной режим построения)

Режим Конструктора в запросах является основным. Даже запрос, выполненный в режиме Мастера, может потребовать доработки: выполнить вычисления, сгруппировать данные или произвести еще какие-либо действия. Выполнение всех дополнительных условий производится в режиме Конструктора — здесь можно сделать практически все.

Так же как и в мастере запросов, открытие запроса в режиме Конструктора происходит двумя способами:

• в основном окне базы данных необходимо выбрать объект Запросы, на панели инструментов основного окна нажать кнопку Создать и в окне Новый запрос выбрать строку Конструктор. Кнопка ОК в этом случае откроет два окна: Запрос 1: запрос на выборку и Добавление таблицы;

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

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

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

Товар и Поставка товара.

Теперь из таблиц нужно выбрать необходимые поля. Это можно сделать тремя способами:

• перетащить поле из окна выбранной таблицы в нижнюю часть окна

Запрос на выборку в свободную (белую) строку Поле, удерживая нажатой левую кнопку мыши. В результате в строке Поле появится имя отобранного поля, а в строку Имя таблицы автоматически будет внесено название таблицы, из которой это поле было выбрано;

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

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

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

В результате всех действий запрос в режиме Конструктора примет вид, представленный на рис. 17

Рис. 17. Создание запроса в режиме Конструктора

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

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

Открытие запроса производится двойным щелчком мыши по названию. Запрос открывается в режиме таблицы.

2. Запросы с параметрами

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

Запросы с параметрами работают по двум вариантам:

• отбор данных происходит в отдельном диалоговом окне. Такие диалоговые окна существуют в любой справочной системе, где вводится вопрос, и программа ищет ответ;

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

1. Диалоговое окно для запроса

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

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

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

[введите:КодТовара].

После слова «введите» указывается название поля (рис. 18).

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

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

Читать еще:  Ключи от офиса 365 бесплатно 2020

Рис. 19. Диалоговое окно Введите значение параметра

После ввода параметра в диалоговом окне Введите значение параметра нажмите ОК, и на экране появится таблица с выбранными параметрами (рис. 20).

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

2. Отбор данных в таблице запроса

Запросы с отбором данных считаются рабочими. Все начинается с простого запроса. В режиме Конструктора в строке Условие отбора в столбце, где необходимо произвести отбор, указываются критерии отбора. В этом случае они записываются в кавычках с указанием данных из записи или с помощью математических знаков (например, «тетради», Групповые операции. В нижней части окна построения запроса появится новая строка Групповые операции, а в зоне каждого поля автоматически будет установлено значение Группировка.

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

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

Функции в раскрывающемся списке имеют краткое обозначение (табл. 11).

Практическая работа. Создание запросов на выборку в MS Access

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Практическая работа №4

Тема: «Создание запросов на выборку»

для студентов 2 курса специальности 10.02.03

Информационная безопасность автоматизированных систем

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

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

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

Запрос позволяет выполнять перечисленные ниже задачи.

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

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

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

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

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

Основные этапы создания запроса на выборку

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

Выберите таблицы или запросы, которые хотите использовать в качестве источников данных.

Укажите поля из источников данных, которые хотите включить в результаты.

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

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

Создать запрос с помощью мастера форм: Создание/Мастер запросов

Создать с помощью конструктора: Создание/ Конструктор запросов

Изменить запрос с помощью конструктора: Режим/Конструктор

Задание 1. Создать запрос Телефоны клиентов

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

1. Создать запрос с помощью мастера запросов: Создание/Другие/Мастер запросов/Простой запрос

2. Выбрать для создания простого запроса таблицы и поля

таблица Клиенты (поля ФИО клиента и Телефон) .

3. Сохранить запрос под именем Телефоны клиентов .

Задание 2. Создать запрос Информация о заказе

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

1. Создать запрос с помощью мастера запросов: Создание/Другие/Мастер запросов/Простой запрос

2. Выбрать для создания простого запроса таблицы и поля в соответствующей последовательности :

Таблица Клиенты (поля ФИО клиента, Телефон клиента )

Таблица Сотрудники (поля ФИО сотрудника, Должность, Телефон сотрудника )

Таблица Заказы (поля Дата заказа, Сумма )

3. Выбрать подробный отчет (вывод каждого поля каждой записи).

4. Сохраните запрос под именем Информация о заказе .

Задание 3. Создать запрос Общая сумма заказов по клиентам

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

1. Создать простой запрос с помощью мастера запросов: Создание/Другие/Мастер запросов/Простой запрос

2. Выбрать для создания простого запроса таблицы и поля :

таблица Заказы (поля ФИО клиента и Сумма ).

3. Выбрать итоговый отчет .

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

Sum — запрос вернет сумму всех значений, указанных в поле.

Avg — запрос вернет среднее значение поля.

Min — запрос вернет минимальное значение, указанное в поле.

Max — запрос вернет максимальное значение, указанное в поле.

5. Сохраните запрос под именем «Общая сумма заказов по клиентам».

Задание 4. Создать запрос Лидеры продаж.

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

1. Создать простой запрос с помощью мастера запросов: Создание/Другие/Мастер запросов/Простой запрос

2. Выбрать для создания простого запроса таблицы и поля :

таблица Заказы (поля Сотрудник и Сумма ).

3. Выбрать Итоговый отчет.

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

5. Сохранить запрос под именем « Лидеры продаж ».

Задание 5. Создать запрос Максимальная сумма заказа

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

1. Создать запрос с помощью Конструктора: Создание/Другие/Конструктор запросов

2. Для создания запроса добавить таблицу Заказы , из которой добавляем поля ФИО клиента , Дата заказа, Сумма ( перетаскиваем мышкой поля из таблицы Заказы в столбцы таблицы в нижней части экрана ).

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

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

5. Для создания запроса нажать кнопку Выполнить!

6. Сохранить запрос под именем « Максимальная сумма заказа ».

Задание 6. Создать запрос Выборка по дате рождения

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

1. Создать запрос с помощью Конструктора: Создание/Другие/Конструктор запросов

2. Для создания запроса использовать таблицы и поля:

таблица Клиенты ( поля ФИО клиента, Дата рождения, Место работы, Должность и Телефон) .

3. В Условии отбора по полю Дата рождения прописать условие:

  • Папарецкая Ирина Геннадьевна
  • Написать
  • 829
  • 21.12.2019

Номер материала: ДБ-871292

Добавляйте авторские материалы и получите призы от Инфоурок

Еженедельный призовой фонд 100 000 Р

  • 21.12.2019
  • 118
  • 21.12.2019
  • 168
  • 21.12.2019
  • 160
  • 21.12.2019
  • 83
  • 21.12.2019
  • 54
  • 21.12.2019
  • 69
  • 21.12.2019
  • 67
  • 21.12.2019
  • 230

Не нашли то что искали?

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

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

Ссылка на основную публикацию
Adblock
detector