Crearea unei interogări bazate pe mai multe tabele

Uneori, procesul de creare și utilizare a interogărilor în Access este o chestiune simplă de selectare a câmpurilor dintr-un tabel, aplicare a unor criterii și vizualizare a rezultatelor. Dar ce faceți dacă (așa cum se întâmplă frecvent) datele de care aveți nevoie sunt răspândite în mai multe tabele? Din fericire, puteți crea o interogare care combină informații din mai multe surse. Acest articol explorează câteva scenarii de extragere a datelor din mai multe tabele și arată cum se efectuează operațiunea.

Ce intenționați?

Utilizarea datelor dintr-un tabel asociat pentru a optimiza informațiile din interogare

Conectarea datelor din două tabele utilizând relațiile lor cu un al treilea tabel

Vizualizarea tuturor înregistrărilor din două tabele similare

Utilizarea datelor dintr-un tabel asociat pentru a optimiza informațiile din interogare

Este posibil să vă întâlniți cu situații în care o interogare bazată pe un tabel să vă ofere informațiile necesare, dar extragerea datelor dintr-un alt tabel v-ar ajuta să obțineți rezultate de interogare mai clare și mai utile. De exemplu, să presupunem că aveți o listă cu ID-uri de angajați care apar în rezultatele interogării. Realizați că ar fi mai util să vizualizați numele angajaților în rezultate, dar acestea se află într-un alt tabel. Pentru a face ca numele angajaților să apară în rezultatele interogării, trebuie să includeți ambele tabele în interogare.

Utilizarea Expertului interogare pentru a crea o interogare pe baza unui tabel principal și a unui tabel asociat

  1. Asigurați-vă că tabelele au o relație definită în fereastra Relații.

    Cum?

    1. Pe fila Instrumente bază de date, în grupul Afișare/Ascundere, faceți clic pe Relații.

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

    3. Identificați tabelele care trebuie să aibă o relație definită.

      • Dacă tabelele sunt vizibile în fereastra Relații, verificați dacă a fost deja definită o relație.

        O relație apare ca o linie care conectează cele două tabele într-un câmp comun. Puteți face dublu clic pe o linie de relație pentru a afla ce câmpuri din tabele sunt conectate prin acea relație.

      • Dacă tabelele nu sunt vizibile în fereastra Relații, trebuie să le adăugați.

        Pe fila Proiectare, în grupul Afișare/Ascundere faceți clic pe Nume tabel.

        Faceți dublu clic pe fiecare dintre tabelele pe care doriți să le afișați, apoi faceți clic pe Închidere.

    4. Dacă nu găsiți o relație între cele două tabele, creați una glisând un câmp dintr-un tabel într-un câmp din celălalt tabel. Câmpurile pentru care creați relația între tabele trebuie să conțină tipuri de date identice.

      Notă: Puteți crea o relație între un câmp cu Tip de date Numerotare automată și un câmp cu tip de date Număr dacă acele câmpuri au dimensiunea de câmp întreg lung. Această situație va fi frecventă atunci când creați o relație unu-la-mai mulți.

      Apare caseta de dialog Editare relații.

    5. Faceți clic pe Creare pentru a crea relația.

      Pentru mai multe informații despre opțiunile pe care le aveți atunci când creați o relație, consultați articolul Crearea, editarea sau ștergerea unei relații.

    6. Închideți fereastra Relații.

  2. Pe fila Creare, în grupul Interogări, faceți clic pe Expert interogare. Rețineți: dacă utilizați Access 2007, pe fila Creare, în grupul Altele, faceți clic pe Expert interogare.

  3. În caseta de dialog Interogare nouă, faceți clic pe Expert interogare simplă, apoi faceți clic pe OK.

  4. În caseta combo Tabele/Interogări, faceți clic pe tabelul care conține informațiile de bază pe care doriți să le includeți în interogare.

  5. În lista Câmpuri disponibile, faceți clic pe primul câmp pe care doriți să-l includeți în interogare, apoi faceți clic pe butonul săgeată la dreapta pentru a-l muta în lista Câmpuri selectate. Procedați la fel cu fiecare câmp suplimentar din acel tabel pe care doriți să-l includeți în interogare. Acestea pot fi câmpurile care doriți să fie returnate în rezultatul interogării sau câmpurile pe care doriți să le utilizați pentru a limita rândurile rezultatului prin aplicarea unor criterii.

  6. În caseta combo Tabele/Interogări, faceți clic pe tabelul care conține datele asociate pe care doriți să le utilizați pentru a îmbunătăți rezultatele interogării.

  7. Adăugați câmpurile pe care doriți să le utilizați pentru a îmbunătăți rezultatele interogării la lista Câmpuri selectate, apoi faceți clic pe Următorul.

  8. Sub Doriți o interogare detaliată sau una de sinteză?, faceți clic pe Detalii sau Sinteză.

    Dacă nu doriți ca interogarea să efectueze funcții agregate (Sum, Avg, Min, Max, Count, StDev sau Var), alegeți o interogare detaliată. Dacă doriți ca interogarea să efectueze o funcție agregată, alegeți o interogare de sinteză. După ce efectuați selecția, faceți clic pe Următorul.

  9. Faceți clic pe Terminare pentru a vizualiza rezultatele.

Un exemplu care utilizează baza de date eșantion Northwind

În exemplul următor, utilizați Expertul interogare pentru a crea o interogare care afișează o listă de comenzi, taxa de livrare pentru fiecare comandă și numele angajatului care a gestionat fiecare comandă.

Notă: Acest exemplu presupune modificarea bazei de date eșantion Northwind. Se recomandă să faceți o copie de backup a bazei de date eșantion Northwind și să urmați acest exemplu folosind copia de backup.

Utilizarea Expertului interogare pentru a crea o interogare

  1. Deschideți baza de date eșantion Northwind. Închideți formularul de conectare.

  2. Pe fila Creare, în grupul Interogări, faceți clic pe Expert interogare. Rețineți: dacă utilizați Access 2007, pe fila Creare, în grupul Altele, faceți clic pe Expert interogare.

  3. În caseta de dialog Interogare nouă, faceți clic pe Expert interogare simplă, apoi faceți clic pe OK.

  4. În caseta combo Tabele/Interogări, faceți clic pe Tabel: Comenzi.

  5. În lista Câmpuri disponibile, faceți dublu clic pe IDComandă pentru a muta câmpul respectiv în lista Câmpuri selectate. Faceți dublu clic pe Taxă de livrare pentru a muta câmpul respectiv în lista Câmpuri selectate.

  6. În caseta combo Tabele/Interogări, faceți clic pe Tabel: Angajați.

  7. În lista Câmpuri disponibile, faceți dublu clic pe Prenume pentru a muta câmpul respectiv în lista Câmpuri selectate. Faceți dublu clic pe Nume pentru a muta câmpul respectiv în lista Câmpuri selectate. Faceți clic pe Următorul.

  8. Deoarece creați o listă cu toate comenzile, se recomandă să utilizați o interogare detaliată. Dacă însumați taxa de livrare după angajat sau efectuați altă funcție agregată, utilizați o interogare de sinteză. Faceți clic pe Detalii (afișează fiecare câmp al fiecărei înregistrări), apoi faceți clic pe Următorul.

  9. Faceți clic pe Terminare pentru a vizualiza rezultatele.

Interogarea returnează o listă de comenzi, fiecare cu taxa de livrare asociată și numele și prenume angajatului care a gestionat-o.

Începutul paginii

Conectarea datelor din două tabele utilizând relațiile lor cu un al treilea tabel

De multe ori, datele din două tabele sunt asociate printr-un al treilea tabel. Acest lucru se întâmplă frecvent deoarece datele din primele două tabele sunt legate printr-o relație mai mulți-la-mai mulți. Adesea, o practică adecvată de proiectare a bazelor de date este scindarea unei relații mai-mulți-la-mai-mulți între două tabele în două relații unu-la-mai-mulți care implică trei tabele. Acest lucru se realizează prin crearea unui al treilea tabel, numit tabel de legătură sau tabel de relație, care are o cheie primară și o cheie străină pentru fiecare dintre celelalte tabele. O relație unu-la-mai-mulți este creată apoi între fiecare cheie străină din tabelul de legătură și cheia primară corespunzătoare din unul din celelalte tabele. În astfel de situații, trebuie să includeți toate cele trei tabele în interogare, chiar dacă doriți să regăsiți date în două dintre ele.

Crearea unei interogări de selectare utilizând tabele cu o relație mai-mulți-la-mai-mulți

  1. Pe fila Creare, în grupul Interogări, faceți clic pe Proiectare interogare. Rețineți: dacă utilizați Access 2007, pe fila Creare, în grupul Altele, faceți clic pe Proiectare interogare.

    Se deschide caseta de dialog Afișare tabel.

  2. În caseta de dialog Afișare tabel, faceți dublu clic pe cele două tabele care conțin datele pe care doriți să le includeți în interogare și tabelul de legătură care le leagă, apoi faceți clic pe Închidere.

    Toate cele trei tabele apar în spațiul de lucru de proiectare a interogării, cu câmpurile corespunzătoare asociate.

  3. Faceți dublu clic pe fiecare câmp pe care doriți să-l utilizați în rezultatele interogării. Fiecare câmp va apărea apoi în grila de proiect a interogării.

  4. În grila de proiect a interogării, utilizați rândul Criterii pentru a introduce criteriile de câmp. Pentru a utiliza un criteriu de câmp fără a afișa câmpul în rezultatele interogării, debifați caseta de selectare de pe rândul Afișare pentru câmpul respectiv.

  5. Pentru a sorta rezultatele pe baza valorilor dintr-un câmp, în grila de proiect a interogării, faceți clic pe Ascendentă sau Descendentă (în funcție de cum doriți să sortați înregistrările) de pe rândul Sortare pentru câmpul respectiv.

  6. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

    Access afișează rezultatul interogării în vizualizare Foaie de date.

Un exemplu care utilizează baza de date eșantion Northwind

Notă: Acest exemplu presupune modificarea bazei de date eșantion Northwind. Se recomandă să faceți o copie de backup a bazei de date eșantion Northwind și să urmați acest exemplu folosind copia de backup.

Să presupunem că aveți o nouă oportunitate: un furnizor din Rio de Janeiro a găsit site-ul dvs. web și ar dori să colaborați. Însă își desfășoară activitatea doar în Rio și în apropiere de São Paulo. El distribuie toate categoriile de produse alimentare pe care dvs. le vindeți. Are o firmă destul de mare și dorește să îl asigurați că puteți furniza un volum potențial de vânzări satisfăcător, în valoare de cel puțin 20.000 de reali pe an (aproximativ 9.300 de dolari). Îi puteți asigura volumul de vânzări cerut?

Datele de care aveți nevoie pentru a răspunde la această întrebare se găsesc în două locuri: în tabelul Clienți și în tabelul Detalii comandă. Aceste tabele sunt legate între ele prin tabelul Comenzi. Relațiile între tabele au fost deja definite. În tabelul Comenzi, fiecare comandă poate avea un singur client, asociat cu tabelul Clienți în câmpul IDClient. Fiecare înregistrare din tabelul Detalii comandă este legată la o singură comandă din tabelul Comenzi, în câmpul IDComandă. Astfel, un client poate avea mai multe comenzi, iar fiecare dintre acestea are mai multe detalii despre comandă.

În acest exemplu, veți crea o interogare tabel încrucișat care afișează totalul vânzărilor pe an în orașele Rio de Janeiro și São Paulo.

Crearea interogării în Vizualizarea proiect

  1. Deschideți baza de date Northwind. Închideți formularul de conectare.

  2. Pe fila Creare, în grupul Interogări, faceți clic pe Proiectare interogare. Rețineți: dacă utilizați Access 2007, pe fila Creare, în grupul Altele, faceți clic pe Proiectare interogare.

    Se deschide caseta de dialog Afișare tabel.

  3. În caseta de dialog Afișare tabel faceți dublu clic pe Clienți, Comenzi și Detalii comandă, apoi faceți clic pe Închidere.

    Toate cele trei tabele apar în spațiul de lucru de proiectare a interogării.

  4. În tabelul Clienți, faceți dublu clic pe câmpul Localitate pentru a-l adăuga la grila de proiectare a interogării.

  5. În grila de proiectare a interogării, în coloana Localitate din rândul Criterii, tastați În („Rio de Janeiro”, „São Paulo”). Aceasta face ca interogarea să includă doar înregistrările în care clientul se află într-una din aceste două localități.

  6. În tabelul Detalii comandă, faceți dublu clic pe câmpurile DatăExpediere și PrețUnitar.

    Câmpurile sunt adăugate la grila de proiectare a interogării.

  7. În coloana DatăExpediere din grila de proiectare a interogării, selectați rândul Câmp. Înlocuiți [DatăExpediere] cu An: Format([DatăExpediere],"yyyy"). Aceasta creează un alias de câmp, An, care vă permite să utilizați doar partea cu anul a valorii din câmpul DatăExpediere.

  8. În coloana PrețUnitar din grila de proiectare a interogării, selectați rândul Câmp. Înlocuiți [PrețUnitar] cu Vânzări: [Detalii comandă].[PrețUnitar]*[Cantitate]-[Detalii comandă].[PrețUnitar]*[Cantitate]*[Reducere]. Aceasta creează un alias de câmp, Vânzări, care calculează vânzările pentru fiecare înregistrare.

  9. Pe fila Proiectare, în grupul Tip interogare, faceți clic pe Tabel încrucișat.

    Două rânduri noi, Total și Tabel încrucișat, apar în grila de proiectare a interogării.

  10. În coloana Localitate din grila de proiectare a interogării, faceți clic pe rândul Tabel încrucișat, apoi pe Titlu de rând.

    Aceasta face ca valorile pentru localitate să apară ca titluri de rând (adică interogarea returnează un rând pentru fiecare localitate).

  11. În coloana An, faceți clic pe rândul Tabel încrucișat, apoi pe Titlu de coloană.

    Aceasta face ca valorile pentru an să apară ca titluri de coloană (adică interogarea returnează o coloană pentru fiecare an).

  12. În coloana Vânzări, faceți clic pe rândul Tabel încrucișat, apoi pe Valoare.

    Aceasta face ca valorile pentru vânzări să apară la intersecția dintre rânduri și coloane (adică interogarea returnează o valoare de vânzări pentru fiecare combinație de localitate și an).

  13. În coloana Vânzări, faceți clic pe rândul Total, apoi pe Sumă.

    Aceasta face ca interogarea să adune valorile din coloană.

    Puteți să lăsați rândul Totaluri pentru celelalte două coloane la valoarea implicită Grupare după, deoarece doriți să vedeți fiecare valoare pentru aceste coloane, nu valori agregate.

  14. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

Acum aveți o interogare ce returnează totalul vânzărilor după an în Rio de Janeiro și São Paulo.

Începutul paginii

Vizualizarea tuturor înregistrărilor din două tabele similare

Uneori, se recomandă să combinați date din două tabele cu structură identică, dar unul dintre ele se află în altă bază de date. Luați în considerare următorul scenariu.

Să presupunem că sunteți un analist care lucrează cu date despre elevi. Participați la o inițiativă de schimb de date între școala dvs. și altă școală, pentru ca ambele să își îmbunătățească programa. Pentru unele întrebări pe care doriți să le analizați, se recomandă să examinați toate înregistrările celor două școli împreună, nu separat, pe fiecare școală.

Ați putea să importați datele celeilalte școli în tabele noi din baza dvs. de date, dar în acest caz modificările aduse datelor celeilalte școli nu s-ar reflecta în baza dvs. de date. O soluție mai bună ar fi să vă legați la tabelele celeilalte școli și să creați interogări care combină datele atunci când le rulați. Astfel ați putea să analizați datele ca un singur set, în loc să efectuați două analize și să încercați să le interpretați ca și cum ar fi una singură.

Pentru a vizualiza toate înregistrările din două tabele cu structură identică, utilizați o interogare de uniune.

Interogările de uniune nu pot fi afișate în Vizualizarea proiect. Acestea se creează utilizând comenzi SQL pe care le introduceți într-o filă obiect Vizualizare SQL.

Crearea unei interogări de uniune utilizând două tabele

  1. Pe fila Creare, în grupul Interogări, faceți clic pe Proiectare interogare. Rețineți: dacă utilizați Access 2007, pe fila Creare, în grupul Altele, faceți clic pe Proiectare interogare.

    Se deschide o nouă grilă de proiectare a interogării și apare caseta de dialog Afișare tabel.

  2. În caseta de dialog Afișare tabel, faceți clic pe fila Închidere.

  3. În fila Proiect, în grupul Tip interogare, faceți clic pe Uniune.

    Interogarea comută de la Vizualizarea proiect la vizualizarea SQL. În acest moment, fila Obiect din vizualizarea SQL este goală.

  4. În vizualizarea SQL, tastați SELECT, apoi alegeți lista de câmpuri din primul tabel pe care doriți să îl includeți în interogare. Numele de câmpuri trebuie să fie încadrate între paranteze pătrate și separate prin virgulă. După ce ați terminat de tastat numele de câmpuri, apăsați pe ENTER. Cursorul se mută cu o linie mai jos în vizualizarea SQL.

  5. Tastați FROM, apoi numele primului tabel pe care doriți să îl includeți în interogare. Apăsați pe ENTER.

  6. Dacă doriți să specificați un criteriu pentru un câmp din primul tabel, tastați WHERE, apoi numele de câmp, un operator de comparare (de obicei, semnul egal (=)) și criteriul. Puteți adăuga criterii suplimentare la sfârșitul clauzei WHERE folosind cuvântul cheie AND și aceeași sintaxă utilizată pentru primul criteriu; de exemplu, WHERE [NivelClasă]="100" AND [OreCredit]>2. După ce ați specificat criteriile, apăsați pe ENTER.

  7. Tastați UNION, apoi apăsați pe Enter.

  8. Tastați SELECT, apoi alegeți lista de câmpuri din al doilea tabel pe care doriți să îl includeți în interogare. Trebuie să includeți aceleași câmpuri din acest tabel pe care le-ați inclus din primul tabel, în aceeași ordine. Numele de câmpuri trebuie să fie încadrate între paranteze pătrate și separate prin virgulă. După ce ați terminat de tastat numele de câmpuri, apăsați pe ENTER.

  9. Tastați FROM, apoi numele celui de-al doilea tabel pe care doriți să îl includeți în interogare. Apăsați pe ENTER.

  10. Dacă doriți, adăugați o clauză WHERE așa cum este descris în Pasul 6 din această procedură.

  11. Tastați semnul punct și virgulă (;) pentru a indica sfârșitul interogării.

  12. Pe fila Proiectare, în grupul Rezultate, faceți clic pe Rulare.

    Rezultatele apar în Vizualizarea foaie de date.

Începutul paginii

Consultați și

Asocierea tabelelor și interogărilor

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×