duminică, 27 septembrie 2026

Expresii, operatori și funcții în Microsoft Access

Expresiile Access sunt utilizate pentru validarea datelor, formularea condițiilor de căutare și elaborarea rapoartelor. 

O expresie conține cel puțin un operator și un operand și returnează o valoare.

1. Expresii Access

O expresie Access este o declarație care conține cel puțin un operator și un operand. Operandul poate fi o constantă, un identificator sau o funcție.

Expresia returnează o valoare care poate fi utilizată, de exemplu, pentru verificarea datelor, căutarea înregistrărilor sau calcularea unor rezultate.

2. Identificatori Access

Un identificator Access reprezintă numele unui obiect al bazei de date. Printre obiectele Access se numără:

  • tabelele;
  • câmpurile;
  • interogările;
  • formularele;
  • rapoartele;
  • baza de date.

De regulă, identificatorii se scriu între simbolurile [ și ].

Identificatorul unui subobiect poate fi format din numele obiectului și numele subobiectului, delimitate prin punct sau semnul exclamării.

Exemple: [Elevi].[Nume_elev], [Profesori].[Salariu], [Cod_elev]

Observație: Dacă nu există posibilitatea unei confuzii, uneori poate fi utilizat doar numele subobiectului.

3. Categorii de operatori Access

În Access sunt utilizate mai multe categorii de operatori pentru efectuarea calculelor, compararea valorilor și formularea condițiilor.

Categoria Operatori Utilizare
Aritmetici + - * / \ Mod ^ Se aplică asupra valorilor numerice.
De comparare < <= = >= > <> Compară două valori și returnează True sau False.
Logici And, Or, Not, Xor Se aplică asupra operanzilor logici.
Atribuire = Atribuie o valoare unui obiect, unei variabile sau unei constante.
Concatenare + Unește două șiruri de caractere.

4. Operatori aritmetici

Operatorii aritmetici sunt utilizați pentru efectuarea operațiilor asupra valorilor numerice.

Operator Semnificație
+Adunare
Exemplu:
[Pret] + [Transport] va returna 550 dacă prețul este 500 lei și transportul 50 lei
-Scădere
Exemplu:
[Sold] - [Cheltuieli] calculează suma rămasă
*Înmulțire
Exemplu:
[Pret] * [Cantitate] calculează Valoarea totală = 1000 lei
/Câtul exact 
Exemplu:
[Total] / [NumarPersoane]  calculează câtul, dacă totalul este 1200 lei și sunt 4 persoane rezultatul va fi 300 lei persoana
Media: ([Pret]+[Reducere])/2 va returna valoarea n=medie dintre două valori
\Cîtul întreg
Exemplu:
20 \ 6  calculează partea întreagă de la împărțire , 20 : 6 = 3 rest 2, se va returna valoarea 3
ModRestul împărțirii
Exemplu:
20 Mod 6  calculează restul împărțirii , 20 : 6 = 3 rest 2, se va returna valoarea 2
[Cantitate] Mod 2 = 0 va verifica dacă cantitatea este pară
^Ridicare la putere
Exemplu:
5 ^ 2 va returna valoarea 25

5. Operatori de comparare

Operatorii de comparare compară valorile a doi operanzi și returnează una dintre valorile logice True sau False.

<    <=    =    >=    >    <>

6. Operatori logici

Operator Utilizare
AndCombină condiții care trebuie să fie adevărate.
Exemplu:
[Nota]>=8 And [Nota]<=10 va returna elevii ce au note între 8 și 10. Ambele condiții trebuie să fie adevărate. 
[Vârsta]>=18 And [Localitate]="Chișinău" 
va returna persoanele de cel puțin 18 ani și din Chișinău. 
OrPermite ca cel puțin una dintre condiții să fie adevărată.
Exemplu:
[Nota]=9 Or [Nota]=10 va returna elevii care au nota 9 sau 10. 
[Localitate]="Chișinău" Or [Localitate]="Bălți" va returna persoanele din Chișinău sau Bălți. 
NotInversează valoarea logică.
Exemplu:
Not [Localitate]="Chișinău" va returna persoanele care nu sunt din Chișinău. 
Not [Nota]<5 va returna valorile pentru care condiția [Nota]<5 nu este adevărată.
XorOperator logic exclusiv.
Exemplu:
[Nota]>=5 Xor [Nota]>=9 Condiția este adevărată atunci când exact una dintre cele două condiții este adevărată.

7. Alți operatori Access

Is Null - Verifică dacă o valoare este vidă. 
Exemplu: [Elevi].[Telefon] Is Null (găsește toți elevii fără telefon)

Like - Verifică dacă un șir respectă un anumit șablon. Șablonul utilizat împreună cu Like se scrie între ghilimele și poate conține caractere de înlocuire (? - pentru un singur caracter, # - pentru singură o cifră, * - pentru orice număr de caractere, inclusiv lipsa lor.) și liste de valori. Lista de valori se scrie între [ și ], iar [! ] va exclude valorile indicate.
Exemple: 
Like "A*" (valorile care încep cu A)
Like "*a" (valorile care finisează cu a)
Like "A??" (valorile
formate din exact 3 caractere, primul fiind A)
Like "A#" (valorile formate din două caractere: primul A, al doilea cifră)
Like "C#?" (valori forate din trei caractere : C + cifră + orice caracter)
Like "[AB]*" (valorile care încep cuA sau B)
Like "[CK]#?" (valorile care conțin trei caractere: primul C sau K, al doilea cifră, al treilea orice caracter)
Like "*[0-9]" (valorile care finisează cu o cifră)
Like "*[!0-9]" (valorile care se termină cu orice caracter cu excepția unei cifre)
Like "*[!ae]" (valorile care NU se termină nici cu litera a nici cu litera e)
Like "*[5ad-g]" (valorile care se termină cu cifra 5 sau cu una dintre literele a, d, e, f, g)

In - Verifică dacă o valoare aparține unei liste.
Exemplu: 
Clasa IN ("10","11","12") (Selectează elevii din clasele 10, 11 sau 12)

Between - Verifică dacă o valoare aparține unui interval.
Exemplu: 
Between 2 And 10 (valorile între 2 și 10)
Această expresie este echivalentă cu: >= 2 And <= 10

8. Expresii în regula de validare

Important: La scrierea expresiei condiției de validare în caseta Validation Rule, identificatorul primului operand nu se scrie. Acesta este considerat implicit identificatorul câmpului respectiv.

De exemplu, regula: In ("Luni"; "Marti"; "Miercuri"; "Joi"; "Vineri") permite utilizatorului să introducă în câmp doar una dintre valorile indicate.

9. Funcții Access

O funcție returnează o valoare prin numele ei. Access oferă numeroase funcții pentru prelucrarea datelor numerice, textuale și calendaristice.

Funcții pentru prelucrarea datelor calendaristice

Funcția Rezultatul returnat
Date()Data curentă.
Exemplu: 
Date() returnează data curentă din sistem
Between Date() And DateAdd("d";7;Date()) returnează evenimentele 
programate în următoarele 7 zile
DateAdd(T; N; D)Data obținută prin adăugarea sau scăderea unui număr de unități calendaristice.
Exemplu:
DateAdd("m"; 3; Date()) Adaugă 7 zile la data curentă.
DateAdd("m"; 3; Date()) Adaugă 3 luni la data curentă.
DateAdd("yyyy"; 1; Date()) Adaugă un an la data curentă.
DateAdd("d"; -10; Date()) Scade 10 zile din data curentă.
DateDiff(T; D1; D2)Diferența dintre două date, exprimată în unități calendaristice.
Exemplu: 
DateDiff("d"; #01/09/2026#; #27/09/2026#) Calculează numărul de zile dintre cele două date: 26 zile.
DateDiff("m"; #01/01/2026#; #01/09/2026#) Calculează diferența în luni: 8 luni.
DateDiff("yyyy"; #15/05/2020#; Date()) Calculează diferența în ani dintre data indicată și data curentă.
DateDiff("yyyy"; [DataNasterii]; Date()) Calculează diferența în ani dintre data nașterii și data curentă.
Time()Ora curentă.
Exemplu:
Time() Returnează ora curentă, de exemplu 21:30:15.
Now()Data și ora curentă.
Exemplu:
Now() Returnează data și ora curentă, de exemplu 27.09.2026 21:30.
Year(D)Anul corespunzător datei D.
Exemplu:
Year(#15/06/2026#) Returnează anul 2026
Year([DataNasterii]) 
Returnează doar anul din valoarea câmpului Year([DataNasterii])=2008 Returnează persoanele născute în anul 2008
Year([DataNasterii])>2010 Returnează persoanele născute după anul 2010
Year([DataInregistrarii])=Year(Date()) Returnează înregistrările din anul curent.

Month(D)Numărul lunii din an.
Exemplu:
Month(#15/06/2026#) Returnează luna 6.
Day(D)Numărul zilei din lună.
Exemplu: 
Day(#15/06/2026#) Returnează ziua 15.
WeekDay(D)Numărul de ordine al zilei în săptămână.
Exemplu: 
WeekDay(#27/09/2026#) Returnează numărul corespunzător zilei săptămânii.
Hour(D)Ora corespunzătoare valorii calendaristice D.
Exemplu:
Hour(#27/09/2026 14:35:20#) Returnează ora 14.

Pentru DateAdd, parametrul T poate indica unitatea calendaristică:

  • "yyyy" – ani;
  • "q" – trimestre;
  • "m" – luni;
  • "ww" – săptămâni;
  • "d" – zile;
  • "h" – ore.

Funcții pentru prelucrarea textului

Funcția Rezultatul returnat
Asc(C)Codul ANSI al caracterului C.
Exemplu:
Asc("A") va returna 65
Chr(N)Caracterul al cărui cod ANSI este N.
Exemplu:
Chr(65) va returna A
InStr(S1; S2)Poziția de la care S2 se găsește în S1.
Exemplu:
InStr("Maria Popescu"; "Pop") va returna 7
Mid(S; N1; N2)Subșir de lungime N2, începând cu poziția N1.
Poziția de la care S2 se găsește în S1.
Exemplu:
Mid("Calculator"; 1; 5) va returna Calcu
LCase(S)Transformă literele majuscule în litere mici.
Exemplu:
LCase("MARIA POPESCU") va returna maria popescu
UCase(S)Transformă literele mici în majuscule.
Exemplu:
UCase("maria popescu") va returna MARIA POPESCU
Len(S)Numărul de caractere ale șirului.
Exemplu:
Len("Calculator") va returna 10
LTrim(S)Elimină spațiile de la începutul șirului.
Exemplu:
LTrim(" Maria") va returna Maria
RTrim(S)Elimină spațiile de la sfârșitul șirului.
Exemplu:
RTrim("Maria ") va returna Maria
Trim(S)Elimină spațiile de la începutul și sfârșitul șirului.
Exemplu:
Trim(S) va returna Maria
Left(S; N)Returnează primele N caractere.
Exemplu:
Left("Calculator"; 5) va returna Calcu
Right(S; N)Returnează ultimele N caractere.
Exemplu:
Right("Calculator"; 4) va returna ator
Str(X)Transformă valoarea X într-un șir de caractere.
Exemplu:
Str(125) va returna " 125"
Val(S)Obține un număr din simbolurile șirului S, dacă acesta are formatul potrivit.
Exemplu:
Val("125") va returna 125

Funcții matematice

Funcția Rezultatul returnat
Abs(X)Valoarea absolută a numărului X.
Exemplu:
Abs(-25) va returna 25
Atn(X)Arctangenta, în radiani, a numărului X.
Exemplu:
Atn(1) va returna 0,7854 radiani
Avg(C)Media aritmetică a valorilor câmpului C.
Exemplu:
Avg([Nota]) va returna media valorilor din câmpul Nota 
Count(C)Numărul valorilor nevide ale câmpului C.
Exemplu:
Count([Nume]) va returna numărul înregistrărilor care au valoare în Nume
Max(C)Valoarea maximă din câmpul C.
Exemplu:
Max([Nota] va returna cea mai mare valoare din câmpul Nota
Max([Pret]*[Cantitate]) va calcula cea mai mare valoare a stocului
Cos(X)Cosinusul numărului X.
Exemplu:
Cos(0) va returna 1
Exp(X)Valoarea eX.
Exemplu:
Exp(1) va returna 2,71828
Int(X)Partea întreagă a numărului X.
Exemplu:
Int(15,78) va returna 15
Log(X)Logaritmul zecimal al numărului X.
Exemplu:
Log(10) va returna 2,3026
Rnd()Un număr aleator cuprins între 0 și 1.
Exemplu:
Rnd() va returna un număr aleator între 0 și 1
Sgn(X)Returnează 0 dacă X este pozitiv și −1 dacă X este negativ, conform sursei.
Exemplu:
Sgn(25) va returna 0
Sin(X)Sinusul numărului X.
Exemplu:
Sgn(25) va returna 0
Sqr(X)Rădăcina pătrată a numărului X.
Exemplu:
Sqr(144) va returna 12
Tan(X)Tangenta numărului X.
Exemplu:
Tan(0) va returna 0

Observații privind utilizarea funcțiilor

  1. În calitate de parametri ai funcțiilor pot fi utilizați identificatorii câmpurilor, scriși între simbolurile [ și ].
  2. Dacă parametrul funcției este o constantă calendaristică, aceasta se scrie între ghilimele.

Reține!

  • O expresie Access este alcătuită din operatori și operanzi.
  • Identificatorii permit referirea la obiectele și câmpurile bazei de date.
  • Operatorii de comparare și cei logici sunt utilizați pentru formularea condițiilor.
  • Like, In, Between și Is Null sunt utilizați frecvent pentru verificarea valorilor.
  • Funcțiile Access permit prelucrarea datelor calendaristice, textuale și numerice.
  • Expresiile pot fi utilizate în reguli de validare, interogări și rapoarte.

Interogări în Baze de date. Noțiuni generale

Interogări în baze de date

Scop: înțelegerea rolului interogărilor, a tipurilor de interogări și a etapelor de creare a unei interogări în Microsoft Access.

1. Noțiuni generale despre interogări

Sistemele de gestiune a bazelor de date sunt utilizate pentru păstrarea, căutarea și prelucrarea rapidă a informațiilor. Atunci când o bază de date conține sute sau chiar milioane de înregistrări, căutarea manuală a informațiilor devine dificilă.

De exemplu, într-o bază de date a unei instituții de învățământ pot exista informații despre elevi, clase, profesori și discipline. Pentru a afla ce discipline studiază un anumit elev, poate fi necesară consultarea mai multor tabele.

Situație-problemă

Consultați baza de date Liceu și determinați ce discipline studiază elevul Moraru Daniel. Ați găsit răspunsul ușor? 

Pentru rezolvarea acestei sarcini poate fi necesară utilizarea informațiilor din tabelele Elevi, Clase, Prof_dis_clasa și Discipline.

Pentru selectarea rapidă a datelor care corespund anumitor condiții, precum și pentru prelucrarea sau actualizarea acestora, sistemele de gestiune a bazelor de date utilizează interogări.

Interogarea este o cerere adresată bazei de date pentru căutarea, analizarea, calcularea, selectarea sau modificarea datelor conform unor condiții stabilite.

O interogare poate utiliza ca sursă de date atât înregistrările din tabele, cât și rezultatul unei alte interogări executate anterior.

2. La ce sunt utilizate interogările?

Interogările sunt utilizate, în special, pentru:

  • vizualizarea unui subset de înregistrări fără deschiderea directă a tabelului;
  • afișarea într-un singur rezultat a informațiilor provenite din mai multe tabele;
  • actualizarea datelor din tabele;
  • adăugarea sau eliminarea unor înregistrări;
  • efectuarea calculelor asupra valorilor câmpurilor;
  • obținerea unor informații noi pe baza datelor existente;
  • calcularea totalurilor, valorilor medii, minimale și maximale.

3. Tipuri de interogări

În funcție de acțiunea realizată și de rezultatul obținut, interogările pot fi clasificate astfel:

Tipul interogării Scop Exemplu

De selecție

Interogările de selecție sunt utilizate pentru a extrage din unul sau mai multe tabele doar înregistrările care îndeplinesc anumite condiții.
  • selectarea elevilor născuți până la 10 ianuarie 2006;
  • afișarea elevilor clasei a X-a B;
  • afișarea profesorilor care au un anumit salariu;
  • selectarea elevilor al căror prenume începe cu litera „C”.

De excludere

Interogările de excludere sunt utilizate pentru a elimina dintr-un tabel înregistrările care îndeplinesc criteriile stabilite.
  • ștergerea elevilor claselor a XII-a după absolvire;
  • eliminarea produselor care nu mai sunt disponibile;
  • ștergerea angajaților care nu mai lucrează în instituție.
De modificare Interogările de modificare sunt utilizate pentru a schimba automat valorile unor câmpuri pentru toate înregistrările care îndeplinesc anumite condiții.
  • majorarea cu 50% a salariilor profesorilor;
  • modificarea clasei unor elevi;
  • actualizarea prețurilor produselor;
  • schimbarea statutului unei comenzi.
Cu câmpuri rezultante Interogările de creare a câmpurilor rezultante sunt utilizate pentru a efectua calcule pe baza datelor existente și pentru a afișa rezultatul într-un câmp nou.
  • calcularea vârstei elevilor pe baza datei nașterii;
  • calcularea prețului total al unui produs;
  • calcularea mediei notelor unui elev;
  • calcularea salariului anual pe baza salariului lunar.
De grupare și totalizare Interogările de grupare și totalizare sunt utilizate pentru gruparea înregistrărilor și obținerea unor valori precum suma, media, valoarea minimă, valoarea maximă sau numărul de înregistrări.
  • calcularea numărului total de ore pentru fiecare clasă;
  • calcularea salariului mediu al profesorilor;
  • determinarea celui mai mare salariu;
  • numărarea elevilor din fiecare clasă.
Încrucișate Interogările încrucișate sunt utilizate pentru prezentarea compactă a datelor într-un tabel, prin gruparea informațiilor pe rânduri și coloane.
  • afișarea numărului de ore pentru fiecare disciplină și clasă;
  • prezentarea vânzărilor pe luni și produse;
  • afișarea numărului de elevi pe clase și ani de studii.

4. Crearea unei interogări în Microsoft Access

Pentru a crea o interogare nouă de selecție în Microsoft Access, parcurgeți următorii pași:

  1. Deschideți meniul Create.
    Selectați comanda Query Design.
  2. Selectați tabelele necesare.
    În fereastra Show Table, selectați tabelele care conțin datele necesare, de exemplu Elevi, și apăsați butonul Add.
  3. Adăugați câmpurile.
    Câmpurile pot fi adăugate în zona de proiectare prin dublu clic pe denumirea câmpului sau prin tragerea acestuia cu mouse-ul. Vom adăuga de exemplu câmpurile: Nume, Prenume și Gen:
  4. Stabiliți criteriile.
    În rândul Criteria introduceți condiția pe care trebuie să o îndeplinească datele selectate. De exemplu dorim să obținem lista elevilor de gen masculin:  
  5. Stabiliți sortarea.
    În rândul Sort puteți alege Ascending pentru ordonare crescătoare sau Descending pentru ordonare descrescătoare.
  6. Stabiliți afișarea câmpurilor.
    În rândul Show puteți indica dacă valorile unui câmp vor fi afișate în rezultatul interogării. 
  7. Executați interogarea.
    Selectați Datasheet View din meniul View pentru a vedea rezultatul.
  8. Salvați interogarea.
    Utilizați comanda Save și introduceți un nume sugestiv pentru interogare.

5. Zona de proiectare a interogării

Fereastra de proiectare a unei interogări este împărțită în două zone principale:

Zona Rol
Zona superioară

Afișează tabelele, câmpurile și relațiile dintre tabele. 

Zona inferioară – QBE

Permite stabilirea câmpurilor, sortării, afișării și criteriilor de selecție.

6. Elementele principale ale grilei QBE

Rând Rol
Field Indică câmpul utilizat în interogare.
Table Indică tabelul din care provine câmpul.
Sort Permite ordonarea rezultatelor crescător sau descrescător.
Show Stabilește dacă acel câmp va fi afișat în rezultat.
Criteria Conține condiția de selecție a înregistrărilor.
Or Permite introducerea unei condiții alternative.

7. Exemplu de interogare

Presupunem că dorim să afișăm elevii clasei 10 C al căror prenume începe cu litera M.

În grila QBE putem utiliza câmpurile Nume, Prenume, Nume_Clasa și Anul_de_studii. Pentru câmpul Prenume se stabilește criteriul corespunzător, pentru câmpul Nume_Clasa se indică valoarea C, iar pentru câmpul Anul_de_studii se va indica valoare 10.

8. Setul dinamic de date

Rezultatul unei interogări de selecție este un set dinamic de date. Acesta nu reprezintă un tabel separat memorat permanent în baza de date.

Rezultatul interogării depinde de datele existente în tabele. Dacă datele din tabele se modifică, rezultatul interogării se poate modifica la următoarea executare.

Rețineți: interogarea este o cerere de prelucrare a datelor, iar rezultatul ei depinde de informațiile existente în baza de date la momentul executării.

Verificarea cunoștințelor

  1. Ce este o interogare?
  2. De ce sunt necesare interogările într-o bază de date cu un număr mare de înregistrări?
  3. Care este rolul unei interogări de selecție?
  4. Ce diferență există între interogările de selecție și cele de modificare?
  5. La ce se utilizează rândul Criteria din grila QBE?
  6. Care este rolul rândului Sort?
  7. Ce înseamnă Ascending și Descending?
  8. Ce reprezintă un set dinamic de date?

Ideea principală

Interogările permit utilizatorului să găsească, să analizeze, să calculeze și să modifice rapid datele dintr-o bază de date. În Microsoft Access, interogările de selecție pot fi construite vizual cu ajutorul ferestrei Query Design și al grilei QBE.