Създаване, редактиране или изтриване на релация
Applies ToAccess за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Релацията в Access ви помага да комбинирате данни от две различни таблици. Всяка релация се състои от полета в две таблици със съответстващи си данни. Например може да имате поле "ИД на продукти" в таблица "Продукти" и в таблица на "Данни за поръчки". Всеки запис в таблицата "Данни за поръчки" има ИД на продукт, който отговаря на един запис в таблицата "ИД на продукти" със същия ИД на продукт.

Когато използвате свързани таблици в заявка, релацията позволява на Access да определи кои записи от всяка таблици да комбинира в набора от резултати. Релацията може да помогне и за предотвратяване на липсва на данни, като пази изтритите данни от излизане от синхронизация, като това се нарича цялост на връзките.

Преди да работите с релации, трябва да разбирате основните понятия. За повече информация вижте Ръководство за релации на таблици и Първи стъпки в релациите на таблици.

В тази статия

Общ преглед

Създаването на релация между в една база данни на Access таблици става, като използвате един от следните методи:

  • В прозореца "Релации" добавете таблиците, които искате да свържете, и след това плъзнете полетата, за да ги свържете от едната таблица към другата.

  • Плъзнете поле в листа с данни на таблицата от екрана Списък на полета.

Когато създавате релация между таблици, общите полета не е необходимо да имат едни и същи имена, въпреки че това е честа практика. Общите полета трябва да имат един и същ тип данни. Ако обаче полето с първичния ключ е поле с автоматично номериране, полето с външния ключ може да бъде и числово поле, ако свойството Размер на полето на двете полета е едно и също. Можете например да съпоставите поле с автоматично номериране с числово поле, ако свойството Размер на полето на двете полета е "Дълго цяло число". Когато двете общи полета са числови полета, те трябва да имат една и съща настройка на свойството Размер на полето.

Най-горе на страницата

Създаване на релация между таблици с помощта на прозореца "Релации"

  1. В раздела Инструменти за бази данни, в групата Релации щракнете върху Релации.

  2. В раздела Проектиране на релации , в групата Релации щракнете върху Добавяне на таблици.

  3. Изберете една или повече таблици или заявки и след това щракнете върху Добавяне. След като завършите добавянето на таблиците и заявките в раздела на документа "Релации", щракнете върху Затвори.

  4. Плъзнете поле (обикновено първичния ключ) от една таблица в общото поле (външния ключ) в друга таблица. За да плъзнете няколко полета, натиснете клавиша CTRL, щракнете върху всяко от тях и след това ги плъзнете.Появява се диалоговият прозорец Редактиране на релации .Edit Relationships dialog box in Access with Customers and Orders join fields

  5. Проверете дали показаните имена на полета са общи полета за релацията. Ако някое име на поле е неправилно, щракнете върху него и изберете подходящото поле от списъка.За да поддържате целостта на връзките за тази релация, отметнете квадратчето Поддържай целостта на връзките . За повече информация за целостта на връзките вж. раздела Поддържане на целостта на връзките.

  6. Щракнете върху Създай.

    Access начертава релационна линия между двете таблици. Ако сте избрали квадратчето за отметка Поддържай целостта на връзките, линиите се показват удебелени в краищата си. Освен това, ако сте отметнали квадратчето Поддържай целостта на връзките, над удебелената част в едната страна на релационната линия се показва цифрата 1, а над удебелената част в другата страна на линията се показва символът за безкрайност (), както е показано на следващата фигура.Плъзгане на поле от таблица в съответстващото поле в друга таблица

    Забележки: 

    • За да създадете релация "един към един"    И двете общи полета (обикновено полето за първичния ключ и полетата за външните ключове) трябва да имат уникален индекс. Това означава, че свойството Индексирано за тези полета трябва да бъде настроено на Да (без дублиране). Ако и двете полета имат уникален индекс, Access създава релация "един към един".

    • За да създадете релация "един към много"    Полето в страната "един" (обикновено първичният ключ) на релацията трябва да има уникален индекс. Това означава, че свойството Индексирано за това поле трябва да бъде настроено на Да (без дублиране). Полето от страната "много" не трябва да има уникален индекс. То може да има индекс, но трябва да разрешава дублирания. Това означава, че свойството Индексирано за това поле трябва да бъде настроено или на Не, или на Да (с дублиране). Когато едното поле има уникален индекс, а другото няма, Access създава релация "един към много".

Най-горе на страницата

Създаване на релация между таблици с помощта на екрана "Списък на полетата" за добавяне на поле

Можете да добавите поле към съществуваща таблица, отворена в табличен изглед, като го плъзнете от екрана Списък на полетата. Екранът Списък на полетата показва полета, достъпни в свързани таблици, и полета, достъпни в други таблици в базата данни.

Когато плъзнете поле от "друга" (несвързана) таблица и след това изпълните съветника за справки, автоматично се създава нова релация "един към много" между таблицата в екрана Списък на полетата и таблицата, в която плъзгате полето. Тази релация, създаден от Access, не поддържа по подразбиране целостта на връзките. За да се поддържа целостта на връзките, трябва да редактирате релацията. За повече информация вж. раздела Редактиране на релация.

Отваряне на таблица в изглед на лист с данни

  • В навигационния екран щракнете двукратно върху таблицата.

Отваряне на екрана ''Списък на полетата''

  • Натиснете ALT+F8. Показва се екранът Списък на полетата.

    Екранът ''Списък на полетата''

Екранът Списък на полетата показва всички други таблици във вашата база данни, групирани в категории. Когато работите с таблица в изглед на лист с данни, Access показва полета в една от следните две категории в екрана Списък на полетата: Полета, достъпни в свързани таблици и Полета, достъпни в други таблици. В първата категория се съдържат всички таблици, които имат релации с таблицата, с която работите в момента. Във втората категория се съдържат всички таблици, с които вашата таблица няма релации.

Когато в екрана Списък на полетата щракнете върху знака плюс (+) до име на таблица, виждате списък на всички полета, налични в тази таблица. За да добавите поле към вашата таблица, плъзне желаното полето от екрана Списък на полетата в таблицата, отворена в изглед на лист с данни.

Добавяне на поле и създаване на релация от екрана "Списък на полетата"

  1. Натиснете ALT+F8 в таблицата, отворена в изглед на лист с данни. Показва се екранът Списък на полетата.

  2. Под Полета, достъпни в други таблици щракнете върху знака плюс (+) до име на таблица, за да се покаже списъкът на полетата в тази таблица.

  3. Плъзнете желаното поле от екрана Списък на полетата в таблицата, която е отворена в изглед на лист с данни.

  4. Когато се покаже редът за вмъкване, пуснете полето на мястото му.

    Стартира се Съветник за справки.

  5. Следвайте инструкциите, за да изпълните Съветник за справки.

    Полето се появява в таблицата, отворена в изглед на лист с данни.

Когато плъзнете поле от "друга" (несвързана) таблица и след това изпълните съветника за справки, автоматично се създава нова релация "един към много" между таблицата в екрана Списък на полетата и таблицата, в която плъзгате полето. Тази релация, създаден от Access, не поддържа по подразбиране целостта на връзките. За да се поддържа целостта на връзките, трябва да редактирате релацията. За повече информация вж. раздела Редактиране на релация.

Най-горе на страницата

Редактиране на релация

Можете да промените релация, като я изберете в прозореца "Релации" и след това я редактирате.

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

    Когато бъде избрана, релационната линия се удебелява.

  2. Когато релационната линия е избрана, щракнете двукратно върху нея.

    –или–

    В раздела Проектиране на релации , в групата Инструменти щракнете върху Редактиране на релации.

Появява се диалоговият прозорец Редактиране на релации.

Отваряне на диалоговия прозорец "Редактиране на релации"

  1. В раздела Инструменти за бази данни, в групата Релации щракнете върху Релации.

  2. В раздела Проектиране на релации , в групата Релации щракнете върху Всички релации.

    Всички таблици с релации се показват заедно с релационните линии. Забележете, че скритите таблици (таблиците, за които е поставена отметка в квадратчето Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец Опции за навигация не е избрана опцията "Покажи скритите обекти".

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

  4. Щракнете двукратно върху релационната линия.

    -или-

    В раздела Проектиране на релации , в групата Инструменти щракнете върху Редактиране на релации.

    Появява се диалоговият прозорец Редактиране на релации.

    Edit Relationships dialog box in Access with Customers and Orders join fields

  5. Направете промените и щракнете върху OK.

    Диалоговият прозорец Редактиране на релации ви позволява да промените релация между таблици. По-конкретно, можете да промените таблиците или заявките от всяка страна на релацията, както и полетата от всяка страна. Можете също да зададете типа на съединенията или поддържането на целостта на връзките и да изберете каскадна опция. За повече информация за типа на съединението и начина на задаването му вж. раздела Задаване на типа на съединението. За повече информация за поддържането на целостта на връзките и избирането на каскадна опция вж. раздела Поддържане на целостта на връзките.

Задаване на типа на съединението

Когато дефинирате релация между таблици, фактите за релацията представляват информация за проектирането на вашите заявки. Ако например дефинирате релация между две таблици и след това създадете заявка, която използва и двете таблици, Access автоматично избира по подразбиране съответстващите си полета на базата на полетата, зададени в релацията. Можете да промените тези начални стойности по подразбиране във вашата заявка, но стойностите, определени от релацията, често ще се оказват правилните. Тъй като съгласуването и обединяването на данни от повече от една таблица е нещо, което често ще правите във всички, освен в най-простите бази данни, задаването на настройки по подразбиране чрез създаване на релации може да бъде ефективно и полезно.

Заявките към няколко таблици комбинират информация от повече от една таблица, като съпоставят стойностите в общи полета. Операцията, която извършва съпоставянето и комбинирането, се нарича съединение. Нека например да искате да покажете поръчки на клиенти. Създайте заявка, която съединява таблицата "Клиенти" и таблицата "Поръчки" по полето "ИД на клиента". Резултатът от заявката съдържа информация за клиенти и информация за поръчки само тези редове, за които е намерено съответствие.

Една от стойностите, което можете да зададете за всяка релация, е типът на съединението. Типът на съединението информира Access кои записи да включи в резултата от заявката. Да разгледаме например отново заявка, съединяваща таблицата "Клиенти" и таблицата "Поръчки" по общите полета "ИД на клиента". Като използва типа съединение по подразбиране (наречен вътрешно съединение), заявката връща само редовете от "Клиенти" и редовете от "Поръчки", в които общите полета (наричани също съединени полета) са равни.

Да предположим обаче, че искате да включите всички клиенти – дори тези, които още не са направили поръчки. За тази цел трябва да промените типа на съединението от вътрешно съединение в така нареченото ляво външно съединение. Лявото външно съединение връща всички редове от таблицата от лявата страна на релацията и само тези от таблицата отдясно, за които има съответствие. Дясното външно съединение връща всички редове отдясно и само тези отляво, за които има съответствие.

Забележка: В този случай "ляво" и "дясно" се отнасят за позицията на таблиците в диалоговия прозорец Редактиране на релации, а не в прозореца "Релации".

Трябва да обмислите резултата, който най-често ще искате от заявката, съединяваща таблиците в тази релация, и в зависимост от това да зададете типа на съединението.

Задаване на типа на съединение

  1. В диалоговия прозорец Редактиране на релации щракнете върху Тип съединение.

    Появява се диалоговият прозорец Свойства на съединението.Диалогов прозорец "Свойства на съединението" в Access, показан с три опции за съединения. избира се първата опция, в която се посочва само редовете, в които съединените полета от двете таблици са равни.

  2. Изберете своя избор и след това щракнете върху OK.

Следващата таблица (ако използвате таблиците "Клиенти" и "Редове") показва трите възможности за избор, които са показани в полето Свойства на съединението, типа съединение, които използват, и дали се връщат всички редове, или съответстващите си редове за всяка таблица.

Избор

Релационно съединение

Лява таблица

Дясна таблица

Включват се редове само когато съединените полета от двете таблици са еднакви.

Вътрешна връзка

Съответстващите редове

Съответстващите редове

2. Включва ВСИЧКИ записи от "Клиенти" и само тези записи от "Поръчки", в които съединените полета са равни.

Ляво външно съединение

Всички редове

Съответстващите редове

3. Включва ВСИЧКИ записи от "Поръчки" и само тези записи от "Клиенти", в които съединените полета са равни.

Дясно външно съединение

Съответстващите редове

Всички редове

Когато изберете опция 2 или опция 3, на релационната линия се показва стрелка. Тази стрелка сочи към страната на релацията, показваща само съответстващите редове.

Извършване на промени в диалоговия прозорец "Свойства на съединението"

  1. В раздела Инструменти за бази данни, в групата Релации щракнете върху Релации.

  2. В раздела Проектиране на релации , в групата Релации щракнете върху Всички релации.Показват се всички таблици, които имат релации, показващи релации. Забележете, че скритите таблици (таблиците, за които е поставена отметка в квадратчето Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец Опции за навигация не е избрана опцията "Покажи скритите обекти".

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

  4. Щракнете двукратно върху релационната линия. Появява се диалоговият прозорец Редактиране на релации.

  5. Щракнете върху Тип съединение.

  6. В диалоговия прозорец Свойства на съединението изберете опция и след това щракнете върху OK.Диалогов прозорец "Свойства на съединението" в Access, показан с три опции за съединения. избира се първата опция, в която се посочва само редовете, в които съединените полета от двете таблици са равни.

  7. Направете допълнителни промени в релацията и след това щракнете върху OK.

Най-горе на страницата

Поддържане на целостта на връзките

Целта на целостта на връзките е да не се допускат висящи записи – записи, които препращат към други записи, които вече не съществуват. Поддържането на целостта на връзките се осъществява, като го разрешите за релация между таблици. След като е разрешено, Access отказва всяка операция, която би нарушила целостта на връзките за тази релация между таблиците. Това означава, че Access ще отказва актуализирания, които променят целта на препратка, и изтривания, които премахват целта на препратка. За да накарате Access да продължи актуализирането и изтриването на препратките, така че всички свързани редове се променят съответно, вж. раздела Задаване на каскадните опции.

Включване и изключване на целостта на връзките.

  1. В раздела Инструменти за бази данни, в групата Релации щракнете върху Релации.

  2. В раздела Проектиране на релации , в групата Релации щракнете върху Всички релации.Показват се всички таблици с релации, показващи релации. Забележете, че скритите таблици (таблиците, за които е поставена отметка в квадратчето Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец Опции за навигация не е избрана опцията "Покажи скритите обекти".

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

  4. Щракнете двукратно върху релационната линия. Появява се диалоговият прозорец Редактиране на релации.

  5. Поставете отметка или изчистете отметката от квадратчето Поддържай целостта на данните.

  6. Направете допълнителни промени в релацията и след това щракнете върху OK.

Ако разрешите поддържането на целостта на връзките, в сила са следните правила:

  • Не може да въведете стойност в полето външен ключ на свързана таблица, ако тази стойност не съществува в полето първичен ключ на първичната таблица  – това би създало изолирани записи.

  • Не можете да изтриете запис от първична таблица, ако съществуват съответстващи записи в свързана таблица. Например не можете да изтриете запис за служител от таблицата "Служители", ако има редове, присвоени на този служител в таблицата "Поръчки". Можете обаче да изтриете с една операция първичен запис и всички свързани записи, като поставите отметка в квадратчето Изтривай каскадно свързаните записи.

  • Не можете да промените стойност на първичен ключ в първичната таблица, защото това би създало изолирани записи. Например не можете да промените номер на поръчка в таблица "Поръчки", ако има редове, съответстващи на тази поръчка в таблица "Подробни данни за поръчки". Можете обаче да актуализирате с една операция първичния запис и всички свързани записи, като поставите отметка в квадратчето Актуализирай каскадно свързаните полета.

    Забележки: Ако имате затруднения при разрешаване на целостта на връзките, обърнете внимание, че за поддържането на целостта на връзките са необходими следните условия:

    • Общото поле от първичната таблица трябва да бъде първичен ключ или да има уникален индекс.

    • Общите полета трябва да имат един и същ тип данни. Единственото изключение е това, че поле с автоматично номериране може да бъде свързано с числово поле, чиято настройка на свойството Размер на полето е Дълго цяло число.

    • И двете таблици съществуват в една и съща база данни на Access. Целостта на връзките не може да бъде приложена за свързани таблици. Ако обаче таблиците източници са във формат за Access, можете да отворите базата данни, в която се съхраняват, и да разрешите целостта на връзките в тази база данни.

Задаване на каскадните опции

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

Може също да се наложи да изтриете един ред и всички свързани с него записи – например запис за един доставчик и всички поръчки, свързани с него. По тази причина Access поддържа опцията "Изтривай каскадно свързаните записи". Когато поддържате целостта на връзките и изберете опцията Изтривай каскадно свързаните записи, Access автоматично изтрива всички записи, които препращат към първичния ключ, когато изтриете записа, съдържащ първичния ключ.

Включване и изключване на каскадно актуализиране и/или каскадно изтриване

  1. В раздела Инструменти за бази данни, в групата Релации щракнете върху Релации.

  2. В раздела Проектиране на релации , в групата Релации щракнете върху Всички релации.Показват се всички таблици с релации, показващи релации. Забележете, че скритите таблици (таблиците, за които е поставена отметка в квадратчето Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец Опции за навигация не е избрана опцията "Покажи скритите обекти".

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

  4. Щракнете двукратно върху релационната линия.Появява се диалоговият прозорец Редактиране на релации .

  5. Поставете отметка в квадратчето Поддържай целостта на данните.

  6. Изберете едното или и двете квадратчета за отметка Актуализирай каскадно свързаните полета и Изтривай каскадно свързаните записи.

  7. Направете допълнителни промени в релацията и след това щракнете върху OK.

Забележка: Ако първичният ключ е поле за автономериране, избирането на Актуализирай каскадно свързаните полета няма да има ефект, защото не може да промени стойността в поле с автоматично номериране.

Най-горе на страницата

Изтриване на релация между таблици

Важно: Когато премахнете релация, премахвате също поддръжката на целостта на връзките за тази релация, ако тя е разрешена. В резултат на това Access престава да забранява автоматично създаването на висящи записи в страната "много" на релацията.

За да премахнете релация между таблици, трябва да изтриете релационната линия в прозореца "Релации". Поставете курсора, така че да сочи към релационната линия, и след това щракнете върху линията. Когато бъде избрана, релационната линия се удебелява. При избрана релационна линия натиснете DELETE.

  1. В раздела Инструменти за бази данни, в групата Релации щракнете върху Релации.

  2. В раздела Проектиране на релации , в групата Релации щракнете върху Всички релации.Показват се всички таблици с релации, показващи релации. Забележете, че скритите таблици (таблиците, за които е поставена отметка в квадратчето Скрита в диалоговия прозорец Свойства на таблицата) и техните релации няма да бъдат показани, освен ако в диалоговия прозорец Опции за навигация не е избрана опцията "Покажи скритите обекти".

  3. Щракнете върху релационната линия за релацията, която искате да изтриете. Когато бъде избрана, релационната линия се удебелява.

  4. Натиснете клавиша DELETE.

  5. Access може да покаже съобщението Наистина ли искате окончателно да изтриете избраната релация от вашата база данни?. Ако се покаже това съобщение за потвърждение, щракнете върху Да.

Забележка: Ако някоя от таблиците, участващи в релацията, се използва от друго лице или процес или е в отворен обект от база данни – например формуляр – няма да можете да изтриете релацията. Преди да се опитате да премахнете релацията, трябва да затворите всички отворени обекти, които използват тези таблици.

Най-горе на страницата

Вж. също

Добавяне на справочно поле към таблица

Какво представлява прозорецът "Релации"?

Сравняване на две таблици в Access и намиране само на съвпадащи данни

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

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