Как объединить таблицы в access
Перейти к содержимому

Как объединить таблицы в access

  • автор:

Объединение полей с помощью вычисляемого типа данных

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Использование вычисляемых полей в Access для объединения данных из отдельных полей, таких как имя и фамилия; или для вычисления дат, например дата заказа плюс пять дней.

С помощью вычисляемых полей можно делать следующее:

  • рассчитывать новые значения на основе существующих данных;
  • указывать условия для запросов.

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

Знаки «плюс» (+) сцепляют значение в поле «Имя», символ пробела (заключенный в кавычки) и значение в поле «Фамилия».

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

([Количество]*[Цена за единицу])+([Количество]*[Цена за единицу]*[Налоговая ставка])

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

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

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

Чтобы отобразить полные имена, сцепляйте значения из полей имени и фамилии с пробелом между ними. Чтобы обеспечить сортировку, удалите «A» или «An» из начала названия книги.

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

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

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

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

Результатом вычисления является значение Да или Нет. Данные сохраняются в виде логического значения.

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

Дата и время

Результаты вычисления выводятся в виде даты или метки времени.

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

Выбор таблицы в Access

  1. Выберите таблицу.

Добавление нового поля с типом данных

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

Создание выражения в новом вычисляемом поле

Введите выражение для вычисления значения поля, а затем нажмите кнопку «ОК».

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

Примечание: Выражения в вычисляемых полях не начинаются со знака равенства (=).

Присвоение имени полю в таблице Access

В заголовке поля введите имя вычисляемого поля и нажмите клавишу ВВОД.

Примечание: Чтобы изменить результат, выводимый в вычисляемом поле, выделите столбец. Затем на вкладке Поля нажмите кнопку Изменить выражение.

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

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

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

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

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

В этой статье

  • Обзор
  • Типы соединений
  • Отображение строк, в которых существует общее значение в обеих объединенных таблицах
  • Отображение всех строк из одной таблицы и соответствующих строк из другой таблицы
  • Отображение всех строк из обеих таблиц и их объединение там, где существует общее значение
  • Перекрестные соединения
  • Объединение таблиц на основе неравенства значений полей
  • Удаление соединения

Обзор

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

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

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

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

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

Окно

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

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

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

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

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

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

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

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

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

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

Полные внешние соединения: все данные, объединенные, где это возможно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FROM таблица1 INNER JOIN таблица2 ON таблица1.field1 compare table2.поле2

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

таблица1, таблица2

Имена таблиц, содержащих объединяемые записи.

поле1, поле2

Имена объединенных полей. Если они не являются числовыми, поля должны иметь один и тот же тип данных и содержать данные одного типа, но они не должны иметь одно и то же имя.

Любой оператор сравнения: (=, , = или <>)

Дополнительные сведения о синтаксисе внутреннего соединения см. в разделе ОПЕРАЦИЯ INNER JOIN.

Отображение всех строк из одной таблицы и соответствующих строк из другой таблицы

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

Внешние соединения могут быть левыми внешними соединениями или правыми внешними соединениями. В левом внешнем соединении запрос включает все строки из первой таблицы в предложении ИНСТРУКЦИи SQL FROM и только те строки из другой таблицы, где поле соединения содержит значения, общие для обеих таблиц. В правом внешнем соединении запрос включает все строки из второй таблицы в предложении SQL STATEMENT FROM и только те строки из другой таблицы, где поле соединения содержит значения, общие для обеих таблиц.

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

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

Разделы справки использовать внешнее соединение?

Внешнее соединение создается путем изменения существующего внутреннего соединения. Если внутреннее соединение не существует, создайте его, а затем измените его на внешнее.

Изменение внутреннего соединения на внешнее соединение
  1. В представлении конструктора запроса дважды щелкните соединение, которое нужно изменить. Откроется диалоговое окно Параметры соединения.
  2. В диалоговом окне Свойства соединения обратите внимание на варианты, перечисленные рядом с вариантами 2 и 3.
  3. Выберите нужный вариант и нажмите кнопку ОК.
  4. Access отображает соединение и стрелку, указывающую из источника данных, где все строки будут включены в источник данных, где будут включены только те строки, которые удовлетворяют условию соединения.

Неоднозначные внешние соединения

При создании запроса, содержащего LEFT JOIN и INNER JOIN, Access может не определить, какую операцию соединения выполнить первым. Так как результаты отличаются в зависимости от того, выполняется ли левое или внутреннее соединение первым, Access отображает сообщение об ошибке:

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

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

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

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 compare table2.field2

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

таблица1, таблица2

Имена таблиц, содержащих объединяемые записи.

поле1, поле2

Имена объединенных полей. Поля должны быть одинаковыми тип данных и содержать одни и те же данные, но они не должны иметь одно и то же имя.

Любой оператор сравнения: (=, , = или <>)

Дополнительные сведения о синтаксисе внешнего соединения см. в разделе LEFT JOIN, RIGHT JOIN Operations.

Отображение всех строк из обеих таблиц и их объединение там, где существует общее значение

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

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

  1. Создайте запрос с левым внешним соединением в поле, которое необходимо использовать для полного внешнего соединения.
  2. На вкладке Главная в группе Режимы выберите команду Режим, а затем — Режим SQL.
  3. Нажмите клавиши CTRL+C, чтобы скопировать код SQL.
  4. Удалите точку с запятой в конце предложения FROM и нажмите клавишу ВВОД.
  5. Введите слово UNION и нажмите клавишу ВВОД.

Примечание: Не используйте ключевое слово ALL при использовании запроса объединения для выполнения полного внешнего соединения.

FROM Products RIGHT JOIN [Order Details]
ON Products.ID = [Order Details].[Product ID]

Перекрестные соединения

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

Зачем использовать перекрестное соединение?

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

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

Перекрестное соединение создается при каждом включении таблиц или запросов в запрос и не создает хотя бы одно явное соединение для каждой таблицы или запроса. Access объединяет каждую строку из каждой таблицы или запроса, которые не соединены явным образом с любой другой таблицей или запросом с каждой другой строкой результатов. Рассмотрим сценарий скидок из предыдущего абзаца. Предположим, что у вас есть 91 клиент и вы хотите рассмотреть пять возможных процентных скидок. При перекрестной соединении создается 455 строк (произведение 91 и 5).

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

1. Обведенные поля должны быть соединены друг с другом.

1. Обратите внимание на очень большое количество записей.

1. Обратите внимание, что количество записей значительно меньше.

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

Соединения не должны основываться на эквивалентности объединенных полей. Соединение может быть основано на любом операторе сравнения, например больше (>), меньше (), или не равно (<>). Соединения, не основанные на эквивалентности, называются неравными соединениями.

Если вы хотите объединить строки двух источников данных на основе значений полей, которые не равны, используйте неравное соединение. Как правило, неравные соединения основаны на операторах сравнения больше (>), меньше (), больше или равно (>=), или меньше или равно (). Неравные соединения, основанные на операторе не равно (<>), могут возвращать почти столько строк, сколько перекрестных соединений, и результаты могут быть трудно интерпретировать.

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

Неравные соединения не поддерживаются в режиме конструктора. Если вы хотите использовать их, это необходимо сделать с помощью представления SQL. Однако вы можете создать соединение в режиме конструктора, переключиться в представление SQL, найти оператор сравнения equals (=) и изменить его на нужный оператор. После этого вы сможете снова открыть запрос в режиме конструктора, только если сначала измените оператор сравнения обратно на равно (=) в представлении SQL.

Удаление соединения

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

  1. В сетке конструктора запросов щелкните соединение, которое нужно удалить.
  2. Нажмите клавишу DELETE.
  • В сетке конструктора запроса щелкните правой кнопкой мыши соединение, которое нужно удалить, и выберите команду Удалить.

Как связать таблицы в Access

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали авторы-волонтеры.

Количество просмотров этой статьи: 49 845.

В этой статье:

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

Часть 1 из 2:

Подготовка базы данных перед привязкой

Step 1 Узнайте, какая версия Access установлена на ваших компьютерах.

  • Вы увидите год выпуска вашей версии Access, например, 2007 или 2013.

Step 2 Убедитесь, что вы пытаетесь привязать таблицу, а не отчет или форму.

Убедитесь, что вы пытаетесь привязать таблицу, а не отчет или форму. Из Access 2.0 и Access 95 в Access 2007 или более позднюю версию можно импортировать только таблицы, запросы и макросы. Такие элементы, как формы, отчеты или модули не могут быть связаны.

Step 3 Сохраните в доступном.

Сохраните в доступном месте базы данных, которые вы хотите привязать. Они должны быть одного из следующих типов файлов: MDB, MDE, ACCDB или ACCDE.

Step 4 Если база данных защищена паролем, то вы должны знать пароль.

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

Step 5 Убедитесь, что вы.

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

Step 6 Закройте базу данных.

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

Как объединить несколько таблиц в одну?

Author24 — интернет-сервис помощи студентам

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

ИСКИ(1 редакция).zip (83.4 Кб, 23 просмотров)

Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Объединить несколько строк столбца отчета в одну ячейку
Добрый день! Целый день бьюсь с задачей- как объединить несколько сгруппированных строк столбца.

Как объединить несколько таблиц в одну
Есть база книг в библиотеке с 20 полями, Название, описание, категория, картинка, страниц, isbn.

Объединить несколько неоднотипных таблиц в одну
Всем привет! Помогите найти решение. Имеется несколько неоднотипных таблиц в одном файле.

Как объединить несколько линий в одну
Добрый, ест задача объединить несколько линий в одну. Искал в google и там есть примеры с XML.

2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
intersk, у Вас таблицы разные. Что именно, или какие таблицы Вы хотите объединить?
Регистрация: 07.09.2014
Сообщений: 329

Вячеслав Я, Данные часть 1, Данные часть 2, Данные часть 3, Данные часть 4 —> в одну таблицу Данные

17488 / 7250 / 1651
Регистрация: 21.06.2012
Сообщений: 13,874

Лучший ответ

Сообщение было отмечено intersk как решение

Решение

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

ИСКИ.7z (40.9 Кб, 12 просмотров)

Регистрация: 07.09.2014
Сообщений: 329

ltv_1953, скачал вашу базу и просто удалил все таблицы Данные часть 1, Данные часть 2, Данные часть 3, Данные часть 4 Оставил только Данные. И удалил Запрос «3Данные». Вроде вся функциональность сохранилась. Спасибо!
Только почему то в поле «Дата начала процентов» появилось #Имя? Раньше там было выражение — вычисление даты

17488 / 7250 / 1651
Регистрация: 21.06.2012
Сообщений: 13,874

Лучший ответ

Сообщение было отмечено intersk как решение

Решение

ЦитатаСообщение от intersk Посмотреть сообщение

Только почему то в поле «Дата начала процентов» появилось #Имя? Раньше там было выражение — вычисление даты

Имеется ввиду форма? Раньше источник записей формы был запрос и там стояло Выражение1: [Данные часть 2]![Дата платежа]+1. Нужно его поправить, чтобы были поля только из таблицы Данные.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *