Видео: создание запросов к несвязанным источникам данных
Applies To
Access для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016![Браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.](https://cxcs.microsoft.net/static/public/surface-and-devices/ru-ru/4873755a-8b1e-497e-bc54-101d1e75d3e7/d07c07fd6aabfe12ed716e87301dc3a1a3a7b5b0.png)
Проверьте, как это работает!
Иногда требуется создать запрос, чтобы извлечь информацию из источников данных, не связанных напрямую (т. е. без связей типа "один-к-одному" или "один-ко-многим").
Использование промежуточных таблиц для связывания источников данных в запросах
При запуске запроса в Access используются созданные вами связи между таблицами, а также прослеживаются и создаются связи между другими источниками данных. Если связь, необходимая для запроса, не существует, вы можете соединить таблицы в рамках этого запроса.
Предположим, вам нужно узнать, сколько заказов вы получили на продукты разных поставщиков. Таблица "Поставщики" не связана с таблицей "Сведения о заказах", в которой указаны коды продуктов и количество проданных товаров. Однако с таблицей "Сведения о заказах" связана таблица "Накладные".
![Несколько источников данных, как с предопределенными связями, так и без них.](https://cxcs.microsoft.net/static/public/centralimages/ru-ru/4ccee5b1-b06e-474a-9ff2-df4f6e8f0225/3d9c9c9899fb8d935baedbba7b23fd4238ffa95d.png)
Совет: Если эта связь может вам потребоваться не только в создаваемом запросе, лучше всего создать промежуточную связь для дальнейшего использования. Инструкции см. в статье Создание связей типа "многие-ко-многим".
Если вы не хотите создавать в своей базе данных промежуточную таблицу, в запросе вы можете использовать в ее роли таблицу "Накладные". Расположите таблицу "Поставщики" слева от таблицы "Накладные" и создайте связь.
![Использование одной таблицы для создания непрямой связи между двумя другими](https://cxcs.microsoft.net/static/public/centralimages/ru-ru/594c2765-ab6b-496d-863c-a400a259b8ab/c6827a08951358129b087dc68a611f89ddd1de7c.png)
Таблица "Накладные" связывает две другие таблицы: "Поставщики" и "Сведения о заказах". При создании связей между полями таблиц (например, между полем "Код" из таблицы "Поставщики" и полем "Код поставщика" из таблицы "Накладные") необходимо учитывать следующие условия:
-
В соединяемых полях должны храниться данные одного типа или сопоставимые сведения. Например, нельзя соединить текстовое поле с числовым.
-
Соединяемые поля должны соответствовать уникальным записям в каждой таблице. Например, не следует соединять два поля "Фамилия", поскольку фамилии не всегда уникальны.
-
Поля обеспечивают правильную запись результата. Например, при подключении идентификатора поставщика к идентификатору покупки вы можете получить некоторые совпадения, если идентификаторы похожи. Но результаты не имеют смысла, так как идентификатор поставщика не имеет ничего общего с идентификатором покупки. Лучше всего подключить идентификатор из таблицы "Поставщик" к идентификатору поставщика в таблице "Заказы на покупку" — возвращаемые записи имеют смысл, так как оба поля идентифицируют поставщика.
Действия
Независимо от того, есть в вашей базе данных промежуточная таблица или вы планируете использовать ее только в запросе, выполните указанные ниже действия.
-
Добавьте в запрос промежуточную таблицу между двумя несвязанными таблицами.
-
Создайте необходимые связи с промежуточной таблицей.
Для связей можно использовать соединения любых типов, однако связываемые поля должны удовлетворять описанным выше условиям.
-
Выполните запрос.
Создайте запрос, как обычно: добавьте выходные поля и необходимые условия, а затем выполните или сохраните запрос. Инструкции см. в статье Создание простых запросов.
Примечание: Включать промежуточную таблицу в результаты не требуется. Она просто должна быть частью источников данных в запросе, чтобы Access мог связать данные.
Вам нужны дополнительные возможности?
Создание запросов путем объединения нескольких источников данных