Uneori, procesul de construire și utilizare a interogărilor în Access este o simplă chestiune de selectare a câmpurilor dintr-un tabel, poate aplicarea unor criterii și apoi vizualizarea rezultatelor. Dar dacă, așa cum se întâmplă mai des, datele de care aveți nevoie sunt distribuite în mai multe tabele? Din fericire, puteți crea o interogare care combină informații din mai multe surse. Acest subiect explorează câteva scenarii în care extrageți date din mai multe tabele și demonstrează cum le faceți.

interogare

Ce vreți să faceți?

Utilizați datele dintr-un tabel asociat pentru a îmbunătăți informațiile din interogarea dvs.

Este posibil să aveți cazuri în care o interogare care se bazează pe un tabel vă oferă informațiile de care aveți nevoie, dar extragerea datelor dintr-un alt tabel ar ajuta la ca rezultatele interogării să fie și mai clare și mai utile. De exemplu, să presupunem că aveți o listă cu ID-urile angajaților care apar în rezultatele interogării dvs. Vă dați seama că ar fi mai util să vizualizați numele angajatului în rezultate, dar numele angajaților se află într-un alt tabel. Pentru ca numele angajaților să apară în rezultatele interogării dvs., trebuie să includeți ambele tabele în interogarea dvs.

Utilizați Expertul de interogare pentru a crea o interogare dintr-un tabel principal și un tabel asociat

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

În Instrumentele bazei de date, în fila Afișare/Ascundere grup, faceți clic pe Relații.

Despre design, în fila Relații grup, faceți clic pe Toate relațiile.

Identificați tabelele care ar trebui 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 leagă cele două tabele pe un câmp comun. Puteți face dublu clic pe o linie de relație pentru a vedea ce câmpuri din tabele sunt conectate de relație.

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

Despre design, în fila Afișare/Ascundere grup, 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.

Dacă nu găsiți o relație între cele două tabele, creați una trăgând un câmp dintr-una din tabele într-un câmp de pe cealaltă masă. Câmpurile pe care creați relația dintre tabele trebuie să aibă tipuri de date identice.

Notă: Puteți crea o relație între un câmp care este de tipul de date AutoNumber și un câmp care este de tipul de date Number, dacă acel câmp are o dimensiune lungă a câmpului întreg. Acest lucru va fi adesea cazul atunci când creați o relație de la unu la mulți.

Editați relațiile apare caseta de dialog.

Faceți clic pe Creați 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 Creați, editați sau ștergeți o relație.

Închideți fereastra Relații.

Pe Creare, în fila Interogări grup, faceți clic pe Asistent interogare.

În interogarea nouă caseta de dialog, faceți clic pe Expertul interogare simplă, și apoi faceți clic pe OK.

În tabele/interogări combo, faceți clic pe tabelul care conține informațiile de bază pe care doriți să le includeți în interogarea dvs.

În câmpurile disponibile lista, faceți clic pe primul câmp pe care doriți să îl includeți în interogarea dvs., apoi faceți clic pe butonul săgeată dreapta pentru a muta acel câmp în câmpurile selectate listă. Faceți același lucru cu fiecare câmp suplimentar din tabelul respectiv pe care doriți să îl includeți în interogarea dvs. Acestea pot fi câmpuri pe care doriți să le returnați în rezultatul interogării sau câmpuri pe care doriți să le utilizați pentru a limita rândurile din ieșire prin aplicarea criteriilor.

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

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

În secțiunea Doriți o interogare detaliată sau sumară?, faceți clic pe Detalii sau Rezumat.

Dacă nu doriți ca interogarea dvs. să îndeplinească funcții cumulate (Sum, Aug, Min, Max, Numara, StDev, sau Var), alegeți o interogare detaliată. Dacă doriți ca interogarea dvs. să îndeplinească o funcție agregată, alegeți o interogare sumară. După ce faceți alegerea, faceți clic pe Următorul.

Faceți clic pe Finalizare pentru a vizualiza rezultatele.

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

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

Notă: Acest exemplu implică modificarea bazei de date eșantion Northwind. Poate doriți să faceți o copie de rezervă a bazei de date eșantion Northwind și apoi urmați acest exemplu folosind acea copie de rezervă.

Utilizați Expertul interogare pentru a construi interogarea

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

Pe Creați fila, în interogări grup, faceți clic pe Asistent interogare.

În interogarea nouă caseta de dialog, faceți clic pe Expertul interogare simplă, și apoi faceți clic pe OK.

În tabele/interogări combo, faceți clic pe Tabel: comenzi.

În câmpurile disponibile listă, faceți dublu clic pe OrderID pentru a muta acel câmp în câmpurile selectate listă. Faceți dublu clic pe Taxa de expediere pentru a muta acel câmp în câmpurile selectate listă.

În tabele/interogări combo, faceți clic pe Tabel: angajați.

În câmpurile disponibile lista, faceți dublu clic pe Prenume pentru a muta acel câmp în câmpurile selectate listă. Faceți dublu clic pe LastName pentru a muta acel câmp în câmpurile selectate listă. Faceți clic pe Următorul.

Deoarece creați o listă cu toate comenzile, doriți să utilizați o interogare detaliată. Dacă însumați taxa de expediere de către angajat sau îndepliniți o altă funcție agregată, utilizați o interogare sumară. Faceți clic pe Detaliu (afișează fiecare câmp din fiecare înregistrare), și apoi faceți clic pe Următorul.

Faceți clic pe Finalizare pentru a vizualiza rezultatele.

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

Conectați datele în două tabele utilizând relațiile lor cu un al treilea tabel

Adesea, datele din două tabele sunt legate între ele printr-un al treilea tabel. Acesta este, de obicei, cazul, deoarece datele dintre primele două tabele sunt legate într-o relație de mai mulți la mulți. Adesea, este o bună practică de proiectare a bazelor de date să împărțiți o relație de mai multe la mai multe între două tabele în două relații de la unu la mai multe care implică trei tabele. Faceți acest lucru creând un al treilea tabel, numit tabel de joncțiune sau tabel de relații, care are o cheie primară și o cheie străină pentru fiecare dintre celelalte tabele. Apoi se creează o relație unu-la-mulți între fiecare cheie străină din tabelul de joncțiune și cheia primară corespunzătoare a uneia dintre celelalte tabele. În astfel de cazuri, trebuie să includeți toate cele trei tabele în interogarea dvs., chiar dacă doriți să preluați date de la doar două dintre ele.

Construiți o interogare selectată utilizând tabele cu o relație de la mulți la mulți

Pe Creare fila, în interogări grup, faceți clic pe Design interogare.

Masa de spectacol se deschide caseta de dialog.

În tabelul Arată caseta de dialog, faceți dublu clic pe cele două tabele care conțin datele pe care doriți să le includeți în interogarea dvs. și, de asemenea, pe tabelul de joncțiuni care le leagă, apoi faceți clic pe Închidere.

Toate cele trei tabele apar în spațiul de lucru pentru proiectarea interogărilor, alăturate în câmpurile corespunzătoare.

Faceți dublu clic pe fiecare dintre câmpurile pe care doriți să le utilizați în rezultatele interogării. Fiecare câmp apare apoi în grila de proiectare a interogării.

În grila de proiectare a interogării, utilizați criteriile rând 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 din Afișare rând pentru acel câmp.

Pentru a sorta rezultatele pe baza valorilor dintr-un câmp, în grila de proiectare a interogării, faceți clic pe Ascendent sau Descendent (în funcție de modul în care doriți să sortați înregistrările) în Sortare rând pentru acel câmp.

Despre design, în fila Rezultate grup, faceți clic pe Executare.

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

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

Notă: Acest exemplu implică modificarea bazei de date eșantion Northwind. Poate doriți să faceți o copie de rezervă a eșantionului bazei de date Northwind și apoi urmați acest exemplu folosind copia de rezervă.

Să presupunem că aveți o nouă oportunitate: un furnizor din Rio de Janeiro a găsit site-ul dvs. web și ar putea dori să facă afaceri cu dvs. Cu toate acestea, aceștia operează doar în Rio și în São Paulo din apropiere. Acestea furnizează fiecare categorie de produse alimentare pe care le intermediați. Sunt afaceri destul de mari și doresc asigurările dvs. că le puteți oferi acces la suficiente vânzări potențiale pentru a-l face util: cel puțin 20.000,00 R $ pe an în vânzări (aproximativ 9.300,00 USD). Le puteți oferi piața de care au nevoie?

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

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

Construiți interogarea în vizualizarea Proiectare

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

Pe Creare fila, în interogări grup, faceți clic pe Design interogare.

Masa de spectacol se deschide caseta de dialog.

În tabelul Arată caseta de dialog, faceți dublu clic pe Clienți, Sau ders, și Detalii comandă, și apoi faceți clic pe Închidere.

Toate cele trei tabele apar în spațiul de lucru pentru proiectarea interogărilor.

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

În grila de proiectare a interogărilor, în Oraș coloană, în Criterii rând, tastați În („Rio de Janeiro”, „São Paulo”). Acest lucru face ca numai acele înregistrări în care clientul se află într-unul din aceste două orașe să fie incluse în interogare.

În tabelul Detalii comandă, faceți dublu clic pe câmpurile ShippedDate și UnitPrice.

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

În Data livrării din grila de proiectare a interogării, selectați câmpul rând. Înlocuiți [ShippedDate] cu Anul: Format ([ShippedDate], "aaaa"). Aceasta creează un alias de câmp, An, care vă permite să utilizați doar porțiunea din an a valorii în câmpul ShippedDate.

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

Despre design fila, în Tip interogare grup, faceți clic pe Crosstab.

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

In oras coloana din grila de proiectare a interogării, faceți clic pe Crosstab rând, apoi faceți clic pe Antet rând.

Acest lucru face ca valorile orașului să apară ca titluri de rând (adică interogarea returnează câte un rând pentru fiecare oraș).

În anul coloană, faceți clic pe Crosstab rând, apoi faceți clic pe Antet coloană.

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

În vînzări coloană, faceți clic pe Crosstab rând, apoi faceți clic pe Valoare.

Acest lucru face ca valorile vânzărilor să apară la intersecția rândurilor și coloanei (adică interogarea returnează o valoare de vânzare pentru fiecare combinație de oraș și an).

În vînzări coloană, faceți clic pe Totaluri rând, apoi faceți clic pe Sumă.

Acest lucru face ca interogarea să adune valorile din această coloană.

Puteți părăsi totalurile rând pentru celelalte două coloane la valoarea implicită a Grupului de, deoarece doriți să vedeți fiecare valoare pentru aceste coloane, nu valori agregate.

Despre design, în fila Rezultate grup, faceți clic pe Executare.

Aveți acum o interogare care returnează vânzările totale pe an în Rio de Janeiro și São Paulo.

Vizualizați toate înregistrările din două tabele similare

Uneori, veți dori să combinați date din două tabele identice ca structură, dar una dintre ele se află într-o altă bază de date. Luați în considerare următorul scenariu.

Să presupunem că sunteți un analist care lucrează cu datele studenților. Vă lansați o inițiativă de partajare a datelor între școala dvs. și o altă școală, astfel încât ambele școli să își poată îmbunătăți curricula. Pentru unele dintre întrebările pe care doriți să le explorați, ar fi mai bine să analizați toate înregistrările de la ambele școli împreună, mai degrabă decât înregistrările fiecărei școli separat.

Puteți importa datele celeilalte școli în tabele noi din baza dvs. de date, dar orice modificare a datelor celeilalte școli nu va fi reflectată în baza dvs. de date. O soluție mai bună ar fi să vă conectați la tabelele celeilalte școli și apoi să creați interogări care să combine datele atunci când le rulați. Ați putea analiza datele ca un singur set, mai degrabă decât să efectuați două analize și să încercați să le interpretați ca și cum ar fi una.

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

Interogările Uniunii nu pot fi afișate în vizualizarea Proiectare. Le construiți utilizând comenzile SQL pe care le introduceți într-o filă obiect SQL view.

Creați o interogare de unire utilizând două tabele

Pe Creați, în fila Interogări grup, faceți clic pe Design interogare.

Se deschide o nouă grilă de proiectare a interogărilor și se afișează tabelul apare caseta de dialog.

În tabelul Arată caseta de dialog, faceți clic pe Închidere.

Despre design fila, în Tip interogare grup, faceți clic pe Unire.

Interogarea trece de la vizualizarea Proiectare la vizualizarea SQL. În acest moment, fila obiectului de vizualizare SQL este goală.

În vizualizarea SQL, tastați SELECT, urmată de o listă a câmpurilor din primul tabel dorit în interogare. Numele câmpurilor trebuie să fie încadrate între paranteze pătrate și separate prin virgule. După ce ați terminat de tastat numele câmpurilor, apăsați ENTER. Cursorul se deplasează în jos cu o linie în vizualizarea SQL.

Tastați FROM, urmat de numele primului tabel dorit în interogare. Apasa Enter.

Dacă doriți să specificați un criteriu pentru un câmp din primul tabel, tastați WHERE, urmat de numele câmpului, un operator de comparație (de obicei, un semn egal (=)), și criteriul. Puteți adăuga criterii suplimentare la sfârșitul clauzei WHERE utilizând cuvântul cheie AND și aceeași sintaxă utilizată pentru primul criteriu; de exemplu, WHERE [ClassLevel] = "100" AND [CreditHours]> 2. Când ați terminat de specificat criteriile, apăsați ENTER.

Tastați UNION, și apoi apăsați ENTER.

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

Tastați FROM, urmat de numele celui de-al doilea tabel pe care doriți să îl includeți în interogare. Apasa Enter.

Dacă doriți, adăugați o clauză WHERE, așa cum este descris în pasul 6 al acestei proceduri.

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

Despre design, în fila Rezultate grup, faceți clic pe Executare.