Crearea, editarea sau ștergerea unei relații
Applies ToAccess pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

O relație în Access vă ajută să combinați date din două tabele diferite. Fiecare relație constă din câmpuri din două tabele cu date corespunzătoare. De exemplu, puteți aveți un câmp IDProdus într-un tabel de Produse și într-un tabel DetaliiComandă. Fiecare înregistrare din tabelul DetaliiComandă are un IDProdus care corespunde cu o înregistrare din tabelul Produse cu același IDProdus.

Atunci când utilizați tabele corelate într-o interogare, relația permite ca Access să determine ce înregistrări din fiecare tabel să combine în setul de rezultate. O relație poate, de asemenea, ajuta la împiedicarea pierderii datelor, nepermițând desincronizarea datelor șterse, ceea ce se numește integritate referențială.

Înainte să lucrați cu relații, asigurați-vă că înțelegeți conceptele de bază. Pentru mai multe informații, consultați articolul Ghid pentru relațiile între tabele și Noțiuni de bază privind relațiile între tabele.

În acest articol

Prezentare generală

Într-o bază de date Access, creați un tabel de relații utilizând una dintre metodele următoare:

  • În fereastra Relații, adăugați tabelele pe care doriți să le asociați, apoi glisați câmpul pentru a le corela dintr-un tabel în celălalt tabel.

  • Glisați un câmp într-o foaie de date de tabel din panoul Listă de câmpuri.

Când creați o relație între tabele, câmpurile comune nu trebuie să aibă neapărat același nume, deși acest lucru se întâmplă deseori. Câmpurile comune trebuie să aibă același tip de date. Însă, dacă un câmp cheie primară este un câmp Numerotare automată, câmpul cheie străină poate fi și un câmp Număr, dacă proprietatea Dimensiune câmp a ambelor câmpuri este aceeași. De exemplu, se poate potrivi un câmp Numerotare automată cu un câmp Număr dacă proprietatea Dimensiune câmp a ambelor câmpuri este Întreg lung. Când ambele câmpuri sunt câmpuri Număr, trebuie să aibă aceeași setare a proprietății Dimensiune câmp.

Începutul paginii

Crearea unei relații între tabele utilizând fereastra Relații

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

  2. Pe fila Proiectare relații , în grupul Relații , faceți clic pe Adăugare tabele.

  3. Selectați unul sau mai multe tabele și interogări, apoi faceți clic pe Adăugare. După ce ați terminat de adăugat tabele și interogări în fila documentului Relații, faceți clic pe Închidere.

  4. Glisați un câmp (de obicei, cheia primară) dintr-un tabel în câmpul comun (cheia străină) din celălalt tabel. Pentru a glisa mai multe câmpuri, apăsați tasta CTRL, faceți clic pe fiecare câmp, apoi glisați-l.Apare caseta de dialog Editare relații .Edit Relationships dialog box in Access with Customers and Orders join fields

  5. Verificați că numele afișate ale câmpurilor sunt cele ale câmpurilor comune pentru relație. Dacă un nume de câmp este incorect, faceți clic pe numele câmpului și selectați câmpul potrivit din listă.Pentru a impune integritatea referențială pentru această relație, bifați caseta de selectare Impunere integritate referențială . Pentru mai multe informații despre integritatea referențială, consultați secțiunea Impunerea integrității referențiale.

  6. Faceți clic pe Creare.

    Access trasează o linie de relație între cele două tabele. Dacă ați bifat caseta de selectare Impunere integritate referențială, linia apare îngroșată la capete. De asemenea, numai dacă ați bifat caseta de selectare Impunere integritate referențială, se afișează numărul 1 deasupra porțiunii îngroșate într-o parte a liniei de relație și simbolul infinit () deasupra porțiunii îngroșate în cealaltă parte a liniei, așa cum se arată în imaginea următoare.Glisarea unui câmp dintr-un tabel în câmpul potrivit din alt tabel

    Note: 

    • Pentru a crea o relație unu-la-unu    Ambele câmpuri comune (de obicei cheia primară și cheia străină) trebuie să aibă un index unic. Acest lucru înseamnă că proprietatea Indexat pentru aceste câmpuri trebuie să fie setată la Da (fără dubluri). Dacă ambele câmpuri au un index unic, Access creează o relație unu-la-unu.

    • Pentru a crea o relație unu-la-mai-mulți    Câmpul de pe o parte a relației (de obicei cheia primară) trebuie să aibă index unic. Acest lucru înseamnă că proprietatea Indexat pentru acest câmp trebuie să fie setată la Da (fără dubluri). Câmpul din partea mai mulți nu trebuie să aibă index unic. Poate avea un index, dar trebuie să permită dubluri. Acest lucru înseamnă că proprietatea Indexat pentru acest câmp trebuie să fie setată la Nu sau la Da (cu dubluri). Când un câmp are index unic și celălalt nu are, Access creează o relație unu-la-mai-mulți.

Începutul paginii

Crearea unei relații între tabele utilizând panoul Listă de câmpuri pentru a adăuga un câmp

Aveți posibilitatea să adăugați un câmp la un tabel existent care este deschis în Vizualizarea foaie de date glisându-l din panoul Listă de câmpuri. Panoul Listă de câmpuri afișează câmpurile disponibile în tabelele asociate și cele disponibile în celelalte tabele în baza de date.

Când glisați un câmp dintr-un „alt” tabel (neasociat) și parcurgeți Expertul Căutare, se creează automat o relație nouă unu-la-mai-mulți între tabelul din Listă de câmpuri și tabelul în care ați glisat câmpul. Această relație, creată de Access, nu impune în mod implicit integritatea referențială. Pentru a impune integritatea referențială, trebuie să editați relația. Consultați secțiunea Editarea unei relații pentru mai multe informații.

Deschiderea unui tabel în Vizualizarea foaie de date

  • În Panoul de navigare, faceți dublu clic pe tabel.

Deschiderea panoului Listă de câmpuri

  • Apăsați ALT+F8. Apare panoul Listă de câmpuri.

    Panoul Listă câmpuri

Panoul Listă de câmpuri afișează toate celelalte tabele din baza de date, grupate pe categorii. Atunci când lucrați cu un tabel în vizualizarea Foaie de date, Access afișează câmpurile în oricare din cele două categorii în panoul Listă de câmpuri: Câmpuri disponibile în tabelele corelate și Câmpuri disponibile în alte tabele. Prima categorie listează toate tabelele care au o relație cu tabelul cu care lucrați în prezent. A doua categorie listează toate tabelele cu care tabelul nu are nicio relație.

În panoul Listă de câmpuri, când faceți clic pe semnul plus (+) de lângă numele unui tabel, vedeți o listă a tuturor câmpurilor disponibile în tabelul respectiv. Pentru a adăuga un câmp la tabelul dvs., glisați câmpul dorit din panoul Listă de câmpuri în tabel în Vizualizarea foaie de date.

Adăugarea unui câmp și crearea unei relații din panoul Listă de câmpuri

  1. Cu tabelul deschis în Vizualizare foaie de date, apăsați ALT+F8. Apare panoul Listă de câmpuri.

  2. Sub Câmpuri disponibile în alte tabele, faceți clic pe semnul plus (+) de lângă numele unui tabel pentru a afișa lista de câmpuri din acel tabel.

  3. Glisați câmpul dorit din panoul Listă de câmpuri în tabelul deschis în Vizualizarea foaie de date.

  4. Când apare o linie de inserare, fixați câmpul în acea poziție.

    Porniți Expertul Căutare.

  5. Urmați instrucțiunile pentru a parcurge Expertul Căutare.

    Câmpul apare în tabel în Vizualizarea foaie de date.

Când glisați un câmp dintr-un „alt” tabel (neasociat) și parcurgeți Expertul Căutare, se creează automat o relație nouă unu-la-mai-mulți între tabelul din Listă de câmpuri și tabelul în care ați glisat câmpul. Această relație, creată de Access, nu impune în mod implicit integritatea referențială. Pentru a impune integritatea referențială, trebuie să editați relația. Consultați secțiunea Editarea unei relații pentru mai multe informații.

Începutul paginii

Editarea unei relații

O relație se modifică selectând-o în fereastra Relații, apoi editând-o.

  1. Poziționați cu grijă cursorul astfel încât să indice către linia relației, apoi faceți clic pe aceasta pentru a o selecta.

    Linia de relație apare îngroșată atunci când este selectată.

  2. După ce ați selectat linia relației, faceți dublu clic pe ea.

    - sau -

    Pe fila Proiectare relații , în grupul Instrumente , faceți clic pe Editare relații.

Se afișează caseta de selectare Editare relații.

Deschiderea casetei de dialog Editare relații

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

  2. Pe fila Proiectare relații , în grupul Relații , faceți clic pe Toate relațiile.

    Se afișează toate tabelele cu relații, afișând liniile de relație. Rețineți că tabelele ascunse (tabelele pentru care este bifată caseta de selectare Ascuns din caseta de dialog Proprietăți a tabelului) și relațiile lor nu se vor afișa decât dacă este bifată caseta de selectare Afișare obiecte ascunse în caseta de dialog Opțiuni de navigare.

  3. Faceți clic pe linia de relație pentru relația pe care doriți să o modificați. Linia de relație apare îngroșată atunci când este selectată.

  4. Faceți dublu clic pe linia de relație.

    -sau-

    Pe fila Proiectare relații , în grupul Instrumente , faceți clic pe Editare relații.

    Apare caseta de dialog Editare relații.

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

  5. Efectuați modificările, apoi faceți clic pe OK.

    Caseta de dialog Editare relații permite modificarea unei relații între tabele. Mai exact, aveți posibilitatea să modificați tabelele sau interogările din ambele părți ale relației sau câmpurile din ambele părți. De asemenea, aveți posibilitatea să setați tipul de asociere sau să impuneți integritatea referențială și să alegeți o opțiune în cascadă. Pentru mai multe informații despre tipul de asociere și cum se setează, consultați secțiunea Setarea tipului de asociere. Pentru mai multe informații despre cum se impune integritatea referențială și cum se selectează o opțiune în cascadă, consultați secțiunea Impunerea integrității referențiale.

Setarea tipului de asociere

Când definiți o relație între tabele, datele relației vă informează în legătură cu proiectarea interogărilor. De exemplu, dacă definiți o relație între două tabele, apoi creați o interogare ce utilizează două tabele, Access selectează automat câmpurile care potrivesc implicit pe baza câmpurilor specificate în relație. Aveți posibilitatea să înlocuiți aceste valori implicite inițiale din interogarea dvs., dar valorile furnizate de relație se vor dovedi deseori cele corecte. Deoarece potrivirea și alăturarea datelor din mai mult de un tabel este un lucru pe care îl veți efectua frecvent în majoritatea bazelor de date simple, stabilirea setărilor implicite prin crearea relațiilor poate economisi timp și poate fi benefică.

O interogare pentru mai multe tabele combină informațiile din mai multe tabele prin potrivirea valorilor din câmpurile comune. Operațiunea care efectuează potrivirea și combinarea este denumită asociere. De pildă, să presupunem că doriți să afișați comenzile clienților. Creați o interogare care asociază tabelul Clienți și tabelul Comenzi după câmpul ID client. Rezultatul interogării conține informațiile despre client și cele de comandă numai pentru acele rânduri unde s-a găsit o potrivire.

Una dintre valorile care se pot specifica pentru fiecare tip de relație este tipul de asociere. Tipul de asociere informează Access despre înregistrările care vor fi incluse în rezultatul interogării. De exemplu, să presupunem din nou că se creează o interogare care asociază tabelul Clienți și tabelul Comenzi după câmpul comun care reprezintă ID-ul clientului. Utilizând tipul de asociere implicită (denumită asociere internă), interogarea returnează numai rândurile Client și Comandă acolo unde câmpurile comune (denumite și câmpuri asociate) sunt egale.

Cu toate acestea, să presupunem că doriți să includeți toți clienții, chiar și pe cei care nu au plasat comenzi. Pentru a realiza aceasta, trebuie să modificați tipul de asociere dintr-o asociere internă într-o asociere cunoscută sub numele de asociere externă la stânga. O asociere externă la stânga returnează toate rândurile din tabelul din stânga relației și numai acelea care se potrivesc în tabelul din dreapta. O asociere externă la dreapta returnează toate rândurile din partea dreaptă a relației și numai pe cele care se potrivesc din partea stângă.

Notă: În acest caz, „stânga” și „dreapta” se referă la poziția tabelelor în caseta de dialog Editare relații, nu în fereastra Relații.

Gândiți-vă la rezultatul pe care îl doriți cel mai des de la o interogare care asociază tabele în această relație, apoi setați tipul de asociere în consecință.

Setarea tipului de asociere

  1. În caseta de dialog Editare relații, faceți clic pe Tip asociere.

    Apare caseta de dialog Proprietăți asociere.Caseta de dialog Proprietăți asociere din Access, afișată cu trei opțiuni de unire. este selectată prima opțiune care spune să includeți doar rândurile în care câmpurile asociate din ambele tabele sunt egale.

  2. Selectați alegerea, apoi faceți clic pe OK.

Următorul tabel (utilizând tabelele Clienți și Comenzi) afișează cele trei opțiuni care sunt afișate în caseta Proprietăți asociere, tipul de asociere utilizat și dacă se returnează toate rândurile sau numai cele care se potrivesc pentru fiecare tabel.

Opțiune

Asociere relațională

Tabel stânga

Tabel dreapta

1. Se includ numai rândurile unde câmpurile asociate din ambele tabele sunt egale.

Asociere internă

Rânduri potrivite

Rânduri potrivite

2. Se includ TOATE înregistrările din „Clienți” și numai acele înregistrări din „Comenzi” unde câmpurile asociate sunt egale.

Asociere externă la stânga

Toate rândurile

Rânduri potrivite

3. Se includ TOATE înregistrările din „Comenzi” și numai acele înregistrări din „Clienți” unde câmpurile asociate sunt egale.

Asociere externă la dreapta

Rânduri potrivite

Toate rândurile

Când alegeți opțiunea 2 sau 3, se afișează o săgeată în linia relației. Această săgeată indică spre partea relației care afișează numai rândurile care se potrivesc.

Efectuarea modificărilor în caseta de dialog Proprietăți asociere

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

  2. Pe fila Proiectare relații , în grupul Relații , faceți clic pe Toate relațiile.Se afișează toate tabelele care au relații, afișând liniile de relație. Rețineți că tabelele ascunse (tabelele pentru care este bifată caseta de selectare Ascuns din caseta de dialog Proprietăți a tabelului) și relațiile lor nu se vor afișa decât dacă este bifată caseta de selectare Afișare obiecte ascunse în caseta de dialog Opțiuni de navigare.

  3. Faceți clic pe linia de relație pentru relația pe care doriți să o modificați. Linia de relație apare îngroșată atunci când este selectată.

  4. Faceți dublu clic pe linia de relație. Apare caseta de dialog Editare relații.

  5. Faceți clic pe Tip asociere.

  6. În caseta de dialog Proprietăți asociere , selectați o opțiune, apoi faceți clic pe OK.Caseta de dialog Proprietăți asociere din Access, afișată cu trei opțiuni de unire. este selectată prima opțiune care spune să includeți doar rândurile în care câmpurile asociate din ambele tabele sunt egale.

  7. Efectuați modificările suplimentare pentru relație, apoi faceți clic pe OK.

Începutul paginii

Impunerea integrității referențiale

Scopul integrității referențiale este de a împiedica înregistrările solitare: înregistrările care fac referire la alte înregistrări care nu mai există. Integritatea referențială se impune prin activarea sa pentru o relație între tabele. După impunere, Access respinge orice operațiune care ar încălca integritatea referențială pentru acea relație între tabele. Aceasta înseamnă că Access va respinge actualizările care modifică ținta unei referințe și ștergerea care elimină ținta unei referințe. Pentru ca Access să propage actualizările și ștergerile referențiale astfel încât toate rândurile înrudite să se modifice în concordanță, consultați secțiunea Setarea opțiunilor de tip cascadă.

Activarea sau dezactivarea integrității referențiale

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

  2. Pe fila Proiectare relații , în grupul Relații , faceți clic pe Toate relațiile.Se afișează toate tabelele cu relații, afișând liniile de relație. Rețineți că tabelele ascunse (tabelele pentru care este bifată caseta de selectare Ascuns din caseta de dialog Proprietăți a tabelului) și relațiile lor nu se vor afișa decât dacă este bifată caseta de selectare Afișare obiecte ascunse în caseta de dialog Opțiuni de navigare.

  3. Faceți clic pe linia de relație pentru relația pe care doriți să o modificați. Linia de relație apare îngroșată atunci când este selectată.

  4. Faceți dublu clic pe linia de relație. Apare caseta de dialog Editare relații.

  5. Bifați sau debifați Impunere integritate referențială.

  6. Efectuați modificările suplimentare pentru relație, apoi faceți clic pe OK.

Dacă impuneți integritatea referențială, se aplică următoarele reguli:

  • Nu se poate introduce o valoare în câmpul cheie străină a unui tabel asociat dacă acea valoare nu există în câmpul cheie primară din tabelul primar; o astfel de operațiune ar crea înregistrări solitare.

  • Nu se poate șterge o înregistrare dintr-un tabel primar dacă există înregistrări care se potrivesc în tabelul asociat. De exemplu, nu puteți șterge înregistrarea unui angajat din tabelul Angajați dacă există comenzi atribuite acestuia în tabelul Comenzi. Cu toate acestea, se poate alege ștergerea unei înregistrări primare și a tuturor înregistrărilor asociate într-o singură operațiune, prin bifarea casetei de selectare Ștergere în cascadă câmpuri corelate.

  • Nu se poate modifica o valoare de cheie primară în tabelul primar dacă acest lucru creează înregistrări solitare. De exemplu, nu se poate modifica numărul unei comenzi în tabelul Comenzi dacă există elemente de linie atribuite acelei comenzi în tabelul Detalii comenzi. Cu toate acestea, se poate alege actualizarea unei înregistrări primare și a tuturor înregistrărilor asociate într-o singură operațiune, prin bifarea casetei de selectare Actualizare în cascadă câmpuri corelate.

    Note: Dacă întâmpinați dificultăți în activarea integrității referențiale, rețineți că sunt necesare următoarele condiții pentru a impune integritatea referențială:

    • Câmpul comun din tabelul primar trebuie să fie cheie primară sau să aibă un index unic.

    • Câmpurile comune trebuie să aibă același tip de date. Singura excepție este în cazul unui câmp Numerotare automată, care poate fi asociat unui câmp Număr care are proprietatea Dimensiune câmp setată la Întreg lung.

    • Ambele tabele există în aceeași bază de date Access. Integritatea referențială nu poate fi impusă pentru tabelele legate. Cu toate acestea, dacă tabelele sursă sunt în format Access, aveți posibilitatea să deschideți baza de date în care sunt stocate și să activați integritatea referențială în acea bază de date.

Setarea opțiunilor de tip cascadă

Este posibil să întâlniți o situație în care există nevoia justificată de a modifica valoarea în partea „unu” a relației. În astfel de cazuri, aveți nevoie ca Access să actualizeze automat toate rândurile afectate ca parte a unei singure operațiuni. Astfel, actualizarea este efectuată complet, pentru ca baza de date să nu rămână inconsistentă, cu unele rânduri actualizate și altele nu. Access previne apariția acestei probleme prin opțiunea Actualizare în cascadă câmpuri corelate. Când impuneți integritatea referențială și selectați opțiunea Actualizare în cascadă câmpuri corelate, apoi actualizați apoi o cheie primară, Access actualizează automat toate câmpurile care fac referire la cheia primară.

De asemenea, poate să fie necesară ștergerea unui rând și a tuturor înregistrărilor corelate, de pildă, înregistrarea unui Expeditor și toate comenzile asociate acelui expeditor. Din acest motiv, Access acceptă opțiunea Ștergere în cascadă câmpuri corelate. Când impuneți integritatea referențială și bifați caseta de selectare Ștergere în cascadă câmpuri corelate, Access șterge automat toate înregistrările cu referință la cheia primară atunci când ștergeți înregistrarea care conține cheia primară.

Activarea sau dezactivarea actualizării și/sau ștergerii în cascadă

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

  2. Pe fila Proiectare relații , în grupul Relații , faceți clic pe Toate relațiile.Se afișează toate tabelele cu relații, afișând liniile de relație. Rețineți că tabelele ascunse (tabelele pentru care este bifată caseta de selectare Ascuns din caseta de dialog Proprietăți a tabelului) și relațiile lor nu se vor afișa decât dacă este bifată caseta de selectare Afișare obiecte ascunse în caseta de dialog Opțiuni de navigare.

  3. Faceți clic pe linia de relație pentru relația pe care doriți să o modificați. Linia de relație apare îngroșată atunci când este selectată.

  4. Faceți dublu clic pe linia de relație.Apare caseta de dialog Editare relații .

  5. Bifați caseta de selectare Impunere integritate referențială.

  6. Bifați caseta de selectare Actualizare în cascadă câmpuri corelate, caseta de selectare Ștergere în cascadă câmpuri corelate sau ambele.

  7. Efectuați modificările suplimentare pentru relație, apoi faceți clic pe OK.

Notă: În cazul în care cheia primară este un câmp Numerotare automată, bifarea casetei de selectare Actualizare în cascadă câmpuri corelate nu va avea efect, deoarece valoarea dintr-un câmp Numerotare automată nu se poate modifica.

Începutul paginii

Ștergerea unei relații între tabele

Important: Atunci când eliminați o relație, eliminați și suportul de integritate referențială pentru acea relație, dacă este activat. Prin urmare, Access nu va mai împiedica automat crearea de înregistrări solitare în partea „mai mulți” a unei relații.

Pentru a elimina o relație între tabele, trebuie mai întâi să ștergeți linia de relație din fereastra Relații. Poziționați cursorul astfel încât să indice spre linia de relație, apoi faceți clic pe linie. Linia de relație apare îngroșată atunci când este selectată. Având linia de relație selectată, apăsați DELETE.

  1. În fila Instrumente bază de date, în grupul Relații, faceți clic pe Relații.

  2. Pe fila Proiectare relații , în grupul Relații , faceți clic pe Toate relațiile.Se afișează toate tabelele cu relații, afișând liniile de relație. Rețineți că tabelele ascunse (tabelele pentru care este bifată caseta de selectare Ascuns din caseta de dialog Proprietăți a tabelului) și relațiile lor nu se vor afișa decât dacă este bifată caseta de selectare Afișare obiecte ascunse în caseta de dialog Opțiuni de navigare.

  3. Faceți clic pe linia de relație pentru relația pe care doriți să o ștergeți. Linia de relație apare îngroșată atunci când este selectată.

  4. Apăsați tasta DELETE.

  5. Este posibil ca Access să afișeze mesajul Ștergeți permanent relațiile selectate din baza de date?. Dacă apare acest mesaj de confirmare, faceți clic pe Da.

Notă: Dacă unul dintre tabelele utilizate în relație este în uz, poate de către altă persoană sau proces, ori într-un obiect deschis din baza de date, cum ar fi un formular, atunci relația nu se va șterge. Înainte să încercați să eliminați relația, trebuie să închideți toate obiectele deschise care utilizează aceste tabele.

Începutul paginii

Consultați și

Adăugarea unui câmp de căutare la un tabel

Ce este fereastra Relații?

Comparați două tabele din Access și găsiți doar datele care se potrivesc

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.