Ce e o interogare (query) si cum difera de un filtru
Filtrul e ca atunci cand rasfoiesti rapid un caiet de comenzi si pui degetul pe randurile de la clientul X — util pe moment, dar a doua zi trebuie sa cauti iar de la inceput. Interogarea e ca un formular tiparit cu titlul "Comenzile clientului X", pe care il pui intr-un dosar si il scoti oricand identic, actualizat automat cu ultimele date.
Tab-ul Create de pe panglica, apoi butonul Query Design. Se deschide o fereastra in care alegi tabelul (sau tabelele) sursa, apoi jos apare o grila (grila de proiectare) cu o coloana pentru fiecare camp ales si un rand Criteria, in care scrii conditia. Interogarea se ruleaza cu butonul Run (semnul exclamarii rosu) si se salveaza cu Ctrl+S, cu un nume clar, de exemplu Q_Piese_Sub_Stoc_Minim.
Interogare cu un singur criteriu — piesele sub stocul minim
<10) sau cu un alt camp din acelasi rand, scriind numele acelui camp intre paranteze drepte: [NumeCamp]. A doua varianta e necesara cand pragul difera de la o inregistrare la alta — exact cazul stocului minim, care nu e acelasi la toate piesele.
P001 Placute frana fata BF220 — Stoc 6, Stoc_Minim 5, Pret_Unitar 98,00 lei
P002 Filtru ulei OE12 — Stoc 18, Stoc_Minim 10, Pret_Unitar 24,50 lei
P003 Curea distributie CT1015 — Stoc 3, Stoc_Minim 5, Pret_Unitar 165,00 lei
P004 Amortizor spate AM330 — Stoc 2, Stoc_Minim 4, Pret_Unitar 320,00 lei
P005 Baterie 60Ah — Stoc 7, Stoc_Minim 3, Pret_Unitar 210,00 lei
1. Create → Query Design → adaugi tabelul Piese.
2. Dai dublu-clic pe campurile pe care vrei sa le vezi in rezultat, in ordine: Cod_Piesa, Denumire, Stoc, Stoc_Minim.
3. Pe coloana Stoc, in randul Criteria, scrii <[Stoc_Minim].
4. Apesi Run.
Verificand fiecare piesa: P001 (6<5? nu), P002 (18<10? nu), P003 (3<5? da), P004 (2<4? da), P005 (7<3? nu).
Raman doar doua randuri: Curea distributie CT1015 (Stoc 3, Stoc_Minim 5) si Amortizor spate AM330 (Stoc 2, Stoc_Minim 4) — astea doua trebuie comandate azi.
Doua criterii deodata — interventiile unui autovehicul, intr-o perioada
1 — NT-07-ABC — 05.01.2026 — Schimb placute frana — Cost_Total 145,00 lei — Cod_Piesa_Principala P001
2 — NT-07-ABC — 20.02.2026 — Revizie ulei si filtre — Cost_Total 210,00 lei — Cod_Piesa_Principala P002
3 — NT-11-XYZ — 12.01.2026 — Schimb baterie — Cost_Total 380,00 lei — Cod_Piesa_Principala P005
4 — NT-07-ABC — 15.03.2026 — Verificare senzor ABS — Cost_Total 95,00 lei — Cod_Piesa_Principala (fara piesa)
5 — NT-11-XYZ — 28.02.2026 — Schimb amortizoare — Cost_Total 640,00 lei — Cod_Piesa_Principala P004
Camp Nr_Inmatriculare, Criteria: "NT-07-ABC" (text intre ghilimele).
Camp Data, pe acelasi rand de Criteria: Between #2026-01-01# And #2026-03-31# (datele in Access se scriu intre semnele # — vezi mai jos de ce acest format anume).
Access citeste literalii dintre # ca luna/zi/an (format american), NU zi/luna/an. Daca ai scrie #05/01/2026# gandindu-te la 5 ianuarie, Access il intelege ca 1 mai 2026 — fara niciun mesaj de eroare, doar un rezultat gresit si tacut. Solutia sigura: scrie data in format an-luna-zi, #2026-01-05#, pe care Access il recunoaste neambiguu indiferent de setarile regionale, sau foloseste functia DateSerial(2026,1,5). In restul acestei lectii, toate criteriile Between folosesc formatul sigur an-luna-zi.
Din cele 5 interventii, trec ambele conditii doar randurile 1, 2 si 4 — toate trei sunt pentru NT-07-ABC si toate trei au data intre 01.01.2026 si 31.03.2026. Randurile 3 si 5 ies din rezultat pentru ca sunt pe alta masina (NT-11-XYZ), desi data lor e in aceeasi perioada. Cele trei interventii insumeaza 145,00 + 210,00 + 95,00 = 450,00 lei pentru masina NT-07-ABC in acest trimestru.
Interogare cu totalizare — costurile pe perioada
1. Adaugi tabelul Interventii, campurile Nr_Inmatriculare, Data, Cost_Total.
2. Sub Data, Criteria: Between #2026-01-01# And #2026-03-31#.
3. Apesi Totals. Pe coloana Nr_Inmatriculare, randul Total ramane Group By. Pe coloana Cost_Total, schimbi Total din Group By in Sum. Pe coloana Data — folosita DOAR pentru criteriu, nu vrei sa grupezi si nu vrei sa o vezi in rezultat — schimbi Total din Group By in Where.
4. Rulezi interogarea.
Pentru NT-07-ABC (interventiile 1, 2, 4 din atomul anterior): 145,00 + 210,00 + 95,00 = 450,00 lei.
Pentru NT-11-XYZ (interventiile 3 si 5): 380,00 + 640,00 = 1.020,00 lei.
Interogarea afiseaza exact aceste doua randuri, gata calculate — fara sa mai numeri nimic pe hartie.
Daca lasi campul Data pe Group By in loc de Where, interogarea nu mai grupeaza doar dupa masina — grupeaza dupa combinatia Nr_Inmatriculare + Data. In loc de doua randuri (450,00 lei pentru NT-07-ABC, 1.020,00 lei pentru NT-11-XYZ), obtii cinci randuri separate, cate unul pentru fiecare interventie in parte (NT-07-ABC: 05.01=145,00; 20.02=210,00; 15.03=95,00; NT-11-XYZ: 12.01=380,00; 28.02=640,00) — niciunul nu arata totalul real cerut. Cum recunosti problema: daca rezultatul are mai multe randuri decat masini distincte te astepti, verifica in grila daca a mai ramas vreun camp pe Group By care ar trebui sa fie pe Where in loc — orice camp folosit doar la Criteria, nu la afisare.
Interogare peste doua tabele — legatura printr-un camp comun
1. Create → Query Design → adaugi ambele tabele: Interventii si Piese.
2. Access desenaza automat o linie intre Cod_Piesa_Principala (din Interventii) si Cod_Piesa (din Piese) daca exista deja o relatie definita intre tabele; daca nu, tragi tu o linie cu mouse-ul de la un camp la celalalt.
3. Aduci in grila campurile dorite din oricare tabel: din Interventii — Data, Nr_Inmatriculare; din Piese — Denumire, Pret_Unitar.
4. Rulezi interogarea — fiecare rand din rezultat combina automat datele din ambele tabele.
05.01.2026, NT-07-ABC, piesa folosita: Placute frana fata BF220, pret unitar 98,00 lei.
20.02.2026, NT-07-ABC, piesa folosita: Filtru ulei OE12, pret unitar 24,50 lei.
28.02.2026, NT-11-XYZ, piesa folosita: Amortizor spate AM330, pret unitar 320,00 lei.
Interogarea aduce denumirea si pretul direct din Piese, fara sa fi fost nevoie sa le scrii vreodata in Interventii — daca schimbi pretul unei piese in tabelul Piese, interogarea arata automat noul pret la urmatoarea rulare.
Raportul tiparibil — Report Wizard
1. Construiesti o interogare de detaliu (stil atomul 3, dar pentru toate masinile) peste tabelul Interventii: campurile Nr_Inmatriculare, Data, Cost_Total, criteriul Between #2026-01-01# And #2026-03-31# sub Data — fara Totals, fara Group By, fiecare interventie ramane pe randul ei. O salvezi, de exemplu, Q_Interventii_Trimestru1.
2. Tab-ul Create → Report Wizard.
3. La pasul "Tables/Queries" alegi Q_Interventii_Trimestru1 ca sursa; muti toate campurile ei in coloana "Selected Fields" — acum raportul are acces la fiecare interventie in parte, nu doar la un total gata facut.
4. La pasul de grupare, alegi Nr_Inmatriculare ca nivel de grupare (fiecare masina isi are blocul ei, cu toate interventiile listate dedesubt).
5. La pasul de sortare/totaluri apesi Summary Options (butonul apare doar cand exista un nivel de grupare si campuri numerice de detaliu — aici Cost_Total) si bifezi subtotalul (Sum) pe campul Cost_Total.
6. Alegi un layout (de exemplu "Stepped") si orientarea paginii (Portrait sau Landscape, daca ai multe coloane), apoi Finish.
Un titlu sus, "Costuri pe autovehicul, trimestrul I". Sub el, un bloc pentru NT-07-ABC cu cele trei interventii si subtotalul 450,00 lei; alt bloc pentru NT-11-XYZ cu cele doua interventii si subtotalul 1.020,00 lei; la finalul paginii, totalul general: 1.470,00 lei. Raportul se deschide in Print Preview, se poate tipari direct sau exporta ca PDF din tab-ul External Data.
Nu tipari niciodata direct fereastra unei interogari — coloanele ies taiate, fara titlu, fara subtotaluri, si arata neingrijit in fata clientului. Interogarea e unealta de lucru, in spate; raportul e documentul de aratat.
Recapitulare si conexiuni
Interogare cu un criteriu — piese sub stocul lor minim propriu, cu <[Stoc_Minim]
↓
Interogare cu doua criterii (AND) — un autovehicul, intr-o perioada, cu Between # # And # #
↓
Interogare cu totalizare — Totals, Group By + Sum + Where, costuri pe perioada
↓
Interogare peste doua tabele — Interventii + Piese, legate prin codul piesei
↓
Raport tiparibil — Report Wizard, grupat, cu subtotaluri, exportat ca PDF
Lectia urmatoare este evaluarea intregii competente C2 — Baze de Date. Vei relua, pe un caz complet nou, toti pasii invatati: tipuri de date, structura tabelelor, operatii, incarcare si exploatare, ca sa arati ca poti construi si folosi singur o baza de date de la zero pana la raportul final.
Criteriu pe un singur camp: valoare fixa sau alt camp intre paranteze drepte, [NumeCamp].
Doua conditii pe acelasi rand = AND; pe randuri diferite = OR.
Totals + Group By + Sum + Where = totalizare pe grupe (Where scoate din grupare campul folosit doar la filtrare).
Doua tabele intr-o interogare = leaga-le printr-un camp comun.
Report Wizard, nu Print Screen, pentru documentul final.