Exemple de expresii

Acest articol oferă multe exemple de expresii utilizate în Access. O expresie este o combinație de operatori matematici sau logici, constante, funcții, câmpuri de tabel, controale și proprietăți care este evaluată la o singură valoare. Puteți utiliza expresiile din Access pentru a calcula valori, pentru a valida date și pentru a seta o valoare implicită.

În acest articol

Formulare și rapoarte

Tabelele din această secțiune oferă exemple de expresii care calculează o valoare cu ajutorul unui control amplasat într-un formular sau un raport. Pentru a crea un control calculat, introduceți o expresie în proprietatea ControlSource a controlului, nu într-un câmp de tabel sau o interogare.

Notă    Puteți utiliza expresii într-un formular sau raport și atunci când realizați Evidențierea datelor prin formatarea condiționată.

Operațiuni text

Expresiile din tabelul următor utilizează operatorii & (ampersand) și + (plus) pentru a combina șiruri text, funcții încorporate pentru manipularea unui șir text sau a opera în alt mod pe text cu scopul de a crea un control calculat.

Expresie

Rezultat

="N/A"

Afișează N/A.

=[FirstName] & " " & [LastName]

Afișează valorile care se găsesc în câmpurile de tabel denumite FirstName (Prenume) și LastName (NumeFamilie). În acest exemplu, operatorul & este utilizat pentru a combina câmpul FirstName (Prenume), un caracter spațiu (încadrat între ghilimele) și câmpul LastName (NumeFamilie).

=Left([ProductName], 1)

Utilizează funcția Left pentru a afișa primul caracter al valorii unui câmp sau unui control denumit ProductName (NumeProdus).

=Right([AssetCode], 2)

Utilizează funcția Right pentru a afișa ultimele 2 caractere ale valorii unui câmp sau unui control denumit AssetCode (CodActiv).

=Trim([Address])

Utilizează funcția Trim pentru a afișa valoarea controlului Address (Adresă), eliminând toate spațiile inițiale sau suplimentare.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

Utilizează funcția IIf pentru a afișa valorile controalelor City (Oraș) și PostalCode (CodPoștal) dacă valoarea din controlul Region (Regiune) este nulă; altfel, afișează valorile controalelor City (Oraș), Region (Regiune) și PostalCode (CodPoștal), separate prin spații.

=[City] & (" " + [Region]) & " " & [PostalCode]

Utilizează operatorul + și propagarea de valori nule pentru a afișa valorile controalelor City (Oraș) și PostalCode (CodPoștal) dacă valoarea din câmpul sau controlul Region (Regiune) este nulă; altfel, afișează valorile câmpurilor sau controalelor City (Oraș), Region (Regiune) și PostalCode (CodPoștal), separate prin spații.

Propagarea de valori nule înseamnă că, dacă orice componentă a unei expresii este nulă, întreaga expresie este nulă. Operatorul + acceptă propagarea de valori nule; operatorul & nu o acceptă.

Începutul paginii

Anteturi și subsoluri

Puteți utiliza proprietățile Pagină și Pagini pentru a afișa sau a imprima numerele de pagină în formulare sau rapoarte. Proprietățile Pagină și Pagini sunt disponibile numai în timpul imprimării sau al previzualizării înaintea imprimării, astfel încât să nu apară în foaia de proprietăți a formularului sau raportului. De obicei, puteți utiliza aceste proprietăți plasând o casetă text în secțiunea de antet sau de subsol a formularului sau raportului, apoi utilizând o expresie, cum ar fi cele afișate în tabelul următor.

Pentru mai multe informații despre utilizarea anteturilor și subsolurilor în formulare și rapoarte, consultați articolul Inserarea numerelor de pagină într-un formular sau raport.

Expresie

Rezultat

=[Page]

1

="Page " & [Page]

Pagina 1

="Page " & [Page] & " of " & [Pages]

Pagina 1 din 3

=[Page] & " of " & [Pages] & " Pages"

1 din 3 pagini

=[Page] & "/" & [Pages] & " Pages"

1/3 pagini

=[Country/region] & " - " & [Page]

UK - 1

=Format([Page], "000")

001

="Printed on: " & Date()

Imprimat pe: 31.12.17

Începutul paginii

Operații aritmetice

Puteți utiliza expresii pentru a aduna, a scădea, a înmulți și a împărți valorile din două sau mai multe câmpuri sau controale. De asemenea, le puteți utiliza pentru a efectua operații aritmetice cu date. De exemplu, să presupunem că aveți un câmp de tabel Dată/Oră denumit DatăCerută. În câmp sau într-un control legat la acel câmp, expresia =[RequiredDate] - 2 returnează o valoare dată/oră egală cu două zile înainte de valorile curente din câmpul DatăCerută.

Expresie

Rezultat

=[Subtotal]+[Freight]

Suma valorilor câmpurilor sau controalelor Subtotal și Freight (Transport).

=[RequiredDate]-[ShippedDate]

Diferența dintre valorile de dată ale câmpurilor sau controalelor RequiredDate (DatăCerută) și ShippedDate (DatăExpediere).

=[Price]*1.06

Produsul dintre valoarea câmpului sau controlului Price (Preț) și 1,06 (adaugă 6 procente la valoarea prețului).

=[Quantity]*[Price]

Produsul valorilor din câmpurile sau controalele Quantity (Cantitate) și Price (Preț).

=[EmployeeTotal]/[CountryRegionTotal]

Câtul valorilor din câmpurile sau controalele EmployeeTotal (TotalAngajați) și CountryRegionTotal (TotalȚarăRegiune).

Notă    Atunci când utilizați un operator aritmetic (+, -, * și /) într-o expresie, iar valoarea unuia dintre controalele expresiei este nulă, rezultatul întregii expresii va fi, de asemenea, nul. Aceasta se numește propagare de valori nule. Dacă oricare dintre înregistrările unui control pe care îl utilizați în expresie are o valoare nulă, puteți evita propagarea de valori nule prin conversia valorii nule în zero, utilizând funcția Nz - de exemplu, =Nz([Subtotal])+Nz([Freight]).

Începutul paginii

Valori din alte controale

Uneori, aveți nevoie de o valoare care se află în altă parte, cum ar fi un câmp sau control dintr-un alt formular sau raport. Puteți utiliza o expresie pentru a returna valoarea dintr-un alt câmp sau control.

Următorul tabel listează exemple de expresii care pot fi utilizate în controale calculate din formulare.

Expresie

Rezultat

=Forms![Orders]![OrderID]

Valoarea controlului OrderID (IDComandă) din formularul Orders (Comenzi).

=Forms![Orders]![Orders Subform].Form![OrderSubtotal]

Valoarea din controlul OrderSubtotal (SubtotalComandă) din subformularul denumit Orders Subform (Subformular comenzi) din formularul Orders (Comenzi).

=Forms![Orders]![Orders Subform]![ProductID].Column(2)

Valoarea celei de-a treia coloane din ProductID (IDProdus), o casetă listă cu mai multe coloane din subformularul denumit Orders Subform (Subformular Comenzi) din formularul Orders (Comenzi). (Rețineți că 0 se referă la prima coloană, 1 la a doua coloană etc.)

=Forms![Orders]![Orders Subform]![Price] * 1.06

Produsul dintre valoarea controlului Price (Preț) din subformularul denumit Orders Subform (Subformular Comenzi) din formularul Orders (Comenzi) și 1,06 (adaugă 6 procente la valoarea controlului Price (Preț)).

=Parent![OrderID]

Valoarea controlului OrderID (IDComandă) din formularul principal sau părinte al subformularului curent.

Expresiile din tabelul următor arată câteva modalități de a utiliza controale calculate în rapoarte. Expresiile fac referire la Proprietatea raport.

Expresie

Rezultat

=Report![Invoice]![OrderID]

Valoarea unui control denumit „OrderID” (IDComandă) într-un raport denumit „Invoice” (Factură).

=Report![Summary]![Summary Subreport]![SalesTotal]

Valoarea controlului SalesTotal (TotalVânzări) din subraportul denumit Summary Subreport (Subraport rezumat) al raportului Summary (Rezumat).

=Parent![OrderID]

Valoarea controlului OrderID (IDComandă) din raportul principal sau părinte al subraportului curent.

Începutul paginii

Valori de contorizare, sume și medii

Puteți utiliza un tip de funcție denumit funcție agregată pentru a calcula valori pentru unul sau mai multe câmpuri sau controale. De exemplu, puteți calcula un total de grup pentru subsolul grupului dintr-un raport sau un subtotal de comandă pentru elementele de linie dintr-un formular. De asemenea, aveți posibilitatea să contorizați numărul de elemente din unul sau mai multe câmpuri sau să calculați o valoare medie.

Expresiile din următorul tabel arată câteva modalități de utilizare a funcțiilor precum Avg, Count și Sum.

Expresie

Descriere

=Avg([Freight])

Utilizează funcția Avg pentru a afișa o medie a valorilor dintr-un câmp sau un control denumit „Freight” (Transport) dintr-un tabel.

=Count([OrderID])

Utilizează funcția Count pentru a afișa numărul de înregistrări din controlul OrderID (IDComandă).

=Sum([Sales])

Utilizează funcția Sum pentru a afișa suma valorilor controlului Sales (Vânzări).

=Sum([Quantity]*[Price])

Utilizează funcția Sum pentru a afișa suma produsului valorilor din controalele Quantity (Cantitate) și Price (Preț).

=[Sales]/Sum([Sales])*100

Afișează procentul de vânzări determinat prin împărțirea valorii controlului Sales (Vânzări) la suma tuturor valorilor controlului Sales (Vânzări).

Dacă setați proprietatea Format a controlului la Procent, nu includeți *100 în expresie.

Pentru mai multe informații despre utilizarea funcțiilor agregate și totalizarea valorilor din câmpuri și coloane, consultați articolele Însumarea datelor utilizând o interogare, Contorizarea datelor utilizând o interogare, Contorizarea rândurilor dintr-o foaie de date și Afișarea totalurilor de coloană dintr-o foaie de date.

Începutul paginii

Funcții agregate SQL

Puteți utiliza tipul de funcție denumit funcție agregată de domeniu sau SQL atunci când doriți să însumați sau să contorizați valori în mod selectiv. Un „domeniu” constă în unul sau mai multe câmpuri din unul sau mai multe tabele ori unul sau mai multe controale în unul sau mai multe formulare sau rapoarte. De exemplu, puteți potrivi valorile dintr-un câmp de tabel cu valorile dintr-un control de formular.

Expresie

Descriere

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]"))

Utilizează funcția DLookup pentru a returna valoarea câmpului ContactName (NumePersoanăDeContact) din tabelul Furnizori acolo unde valoarea câmpului SupplierID (IDFurnizor) din tabel se potrivește cu valoarea controlului SupplierID (IDFurnizor) din formularul Suppliers (Furnizori).

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID])

Utilizează funcția DLookup pentru a returna valoarea câmpului ContactName (NumePersoanăDeContact) din tabelul Furnizori acolo unde valoarea câmpului SupplierID (IDFurnizor) din tabel se potrivește cu valoarea controlului SupplierID (IDFurnizor) din formularul New Suppliers (Furnizori Noi).

=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'")

Utilizează funcția DSum pentru a returna suma totală a valorilor din câmpul OrderAmount (ValoareComandă) din tabelul Orders (Comenzi) acolo unde CustomerID (IDClient) este RATTC.

=DCount("[Retired]","[Assets]","[Retired]=Yes")

Utilizează funcția DCount pentru a returna numărul de valori Yes (Da) din câmpul Retired (Retrase) (un câmp Da/Nu) din tabelul Assets (Active).

Începutul paginii

Operațiuni cu date

Urmărirea datelor și orelor este o activitate fundamentală pentru o bază de date. De exemplu, puteți calcula câte zile au trecut de la data facturării pentru a crește contul de creanțe. Puteți formata datele și orele în mai multe moduri, după cum se arată în următorul tabel.

Expresie

Descriere

=Date()

Utilizează funcția Date pentru a afișa data curentă în forma mm-dd-yy, unde mm este luna (1-12), dd este ziua (1-31), iar yy reprezintă ultimele două cifre ale anului (1980 până la 2099).

=Format(Now(), "ww")

Utilizează funcția Format pentru a afișa numărul săptămânii din an corespondente datei curente, unde ww reprezintă săptămânile de la 1 la 53.

=DatePart("yyyy", [OrderDate])

Utilizează funcția DatePart pentru a afișa anul format din patru cifre din valoarea controlului OrderDate (DatăComandă).

=DateAdd("y", -10, [PromisedDate])

Utilizează funcția DateAdd pentru a afișa o dată care este cu 10 zile înainte de valoarea controlului PromisedDate (DatăPromisă).

=DateDiff("d", [OrderDate], [ShippedDate])

Utilizează funcția DateDiff pentru a afișa numărul de zile diferență între valorile controalelor OrderDate (DatăComandă) și ShippedDate (DatăExpediere).

=[InvoiceDate] + 30

Utilizează operații aritmetice cu date pentru a calcula data de la 30 de zile după data din câmpul sau controlul InvoiceDate (DatăFacturare).

Începutul paginii

Condiții cu doar două valori

Exemplele de expresii din următorul tabel utilizează funcția IIf pentru a returna una din două valori posibile. Funcția IIf poate avea trei argumente: primul argument este o expresie care trebuie să returneze o valoare True sau False. Al doilea argument este valoarea de returnat dacă expresia este adevărată, iar al treilea argument este valoarea de returnat dacă expresia este falsă.

Expresie

Descriere

=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed")

Utilizează funcția IIf (Immediate If) pentru a afișa mesajul „Order Confirmed” (Comandă confirmată) dacă valoarea controlului Confirmed (Confirmat) este Yes; altfel, afișează mesajul "Order Not Confirmed.".

=IIf(IsNull([Country/region]), " ", [Country])

Utilizează funcțiile IIf și IsNull pentru a afișa un șir gol dacă valoarea din controlul Country/region (Țară/regiune) este nulă; altfel, afișează valoarea controlului Country/region (Țară/regiune).

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

Utilizează funcțiile IIf și IsNull pentru a afișa valorile controalelor City (Oraș) și PostalCode (Cod Poștal) în cazul în care valoarea controlului Region (Regiune) este nulă; altfel, afișează valorile câmpurilor sau controalelor City (Oraș), Region (Regiune) și PostalCode (Cod Poștal).

=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Utilizează funcțiile IIf și IsNull pentru a afișa mesajul „Check for a missing date” (Verifică dată lipsă) dacă rezultatul scăderii ShippedDate (DatăExpediere) din RequiredDate (DatăCerută) este nul; altfel, afișează diferența dintre valorile de dată din controalele RequiredDate (DatăCerută) și ShippedDate (DatăExpediere).

Începutul paginii

Interogări și filtre

Această secțiune conține exemple de expresii pe care le puteți utiliza pentru a crea un câmp calculat într-o interogare sau pentru a furniza criterii pentru o interogare. Un câmp calculat este o coloană dintr-o interogare care rezultă dintr-o expresie. De exemplu, aveți posibilitatea să calculați o valoare, să combinați valori text cum ar fi numele și prenumele sau să formatați o parte dintr-o dată.

Puteți utiliza criterii într-o interogare pentru a limita numărul de înregistrări cu care lucrați. De exemplu, puteți utiliza operatorul Between pentru a oferi o dată de începere și de terminare și a limita rezultatele interogării la comenzile care au fost expediate între acele date.

Următoarele oferă exemple de expresii de utilizat în interogări.

Operațiuni text

Expresiile din tabelul următor utilizează operatorii & și + pentru a combina șiruri text, funcții încorporate pentru manipularea unui șir text sau a opera în alt mod pe text cu scopul de a crea un câmp calculat.

Expresie

Descriere

FullName: [FirstName] & " " & [LastName]

Creează un câmp denumit FullName (NumeComplet), care afișează valorile din câmpul FirstName (Prenume) și LastName (NumeFamilie), separate printr-un spațiu.

Address2: [City] & " " & [Region] & " " & [PostalCode]

Creează un câmp denumit Address2 (Adresă2), care afișează valorile din câmpurile City (Oraș), Region (Regiune) și PostalCode (CodPoștal), separate prin spații.

ProductInitial: Left([ProductName], 1)

Creează un câmp denumit InițialăProdus, apoi utilizează funcția Left pentru a afișa în câmpul InițialăProdus primul caracter al valorii din câmpul NumeProdus.

TypeCode: Right([AssetCode], 2)

Creează un câmp denumit TipCod, apoi utilizează funcția Right pentru a afișa ultimele două caractere ale valorilor din câmpul CodActive.

AreaCode: Mid([Phone],2,3)

Creează un câmp denumit CodZonal, apoi utilizează funcția Mid pentru a afișa cele trei caractere începând cu al doilea caracter al valorii din câmpul Telefon.

ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100

Denumește câmpul calculat ExtendedPrice (PrețDetaliat) și utilizează funcția CCur pentru a calcula totalurile elementelor de linie, cu o reducere aplicată.

Începutul paginii

Operații aritmetice

Puteți utiliza expresii pentru a aduna, a scădea, a înmulți și a împărți valorile din două sau mai multe câmpuri sau controale. De asemenea, puteți efectua operații aritmetice cu date. De exemplu, să presupunem că aveți un câmp Dată/Oră denumit RequiredDate (DatăCerută). Expresia =[RequiredDate] - 2 returnează o valoare Dată/Oră egală cu două zile înainte de valoarea din câmpul RequiredDate (DatăCerută).

Expresie

Descriere

PrimeFreight: [Freight] * 1.1

Creează un câmp denumit PrimeFreight (TransportInițial), apoi afișează costurile de transport plus 10 la sută în câmp.

OrderAmount: [Quantity] * [UnitPrice]

Creează un câmp denumit OrderAmount (VolumComandă), apoi afișează produsul valorilor din câmpurile Quantity (Cantitate) și UnitPrice (PrețUnitar).

LeadTime: [RequiredDate] - [ShippedDate]

Creează un câmp denumit LeadTime (TimpDeProcesare), apoi afișează diferența dintre valorile câmpurilor RequiredDate (DatăCerută) și ShippedDate (DatăExpediere).

TotalStock: [UnitsInStock]+[UnitsOnOrder]

Creează un câmp denumit TotalStock (TotalStoc), apoi afișează suma valorilor din câmpurile UnitsInStock (UnitățiStoc) și UnitsOnOrder (UnitățiÎnComandă).

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Creează un câmp denumit ProcentTransport, apoi afișează procentul costurilor de transport din fiecare subtotal. Această expresie utilizează funcția Sum pentru a totaliza valorile din câmpul Transport, apoi împarte acele valori la suma valorilor din câmpul Subtotal.

Pentru a utiliza această expresie, trebuie să efectuați conversia interogării de selectare într-o interogare de tip Totaluri, deoarece trebuie să utilizați rândul Total în grila de proiectare și să setați celula Total pentru acest câmp la Expresie.

Pentru mai multe informații despre crearea unei interogări de tip Totaluri, consultați articolul Însumarea datelor utilizând o interogare.

Dacă setați proprietatea Format a câmpului la Procent, nu includeți *100.

Pentru mai multe informații despre utilizarea funcțiilor agregate și totalizarea valorilor din câmpuri și coloane, consultați articolele Însumarea datelor utilizând o interogare, Contorizarea datelor utilizând o interogare, Contorizarea rândurilor dintr-o foaie de date și Afișarea totalurilor de coloană dintr-o foaie de date.

Începutul paginii

Operațiuni cu date

Aproape toate bazele de date stochează și urmăresc date și ore. Puteți lucra cu date și ore în Access setând câmpurile dată și oră din tabele la tipul de date Dată/Oră. Access poate efectua calcule aritmetice cu date. De exemplu, puteți calcula câte zile au trecut de la data facturării pentru a crește contul de creanțe.

Expresie

Descriere

LagTime: DateDiff("d", [OrderDate], [ShippedDate])

Creează un câmp denumit DiferențăTimp, apoi utilizează funcția DateDiff pentru a afișa numărul de zile între data comenzii și data de expediere.

YearHired: DatePart("yyyy",[HireDate])

Creează un câmp denumit YearHired (AnAngajare), apoi utilizează funcția DatePart pentru a afișa anul de angajare al fiecărui angajat.

MinusThirty: Date( )- 30

Creează un câmp denumit MinusThirty (MinusTreizeci), apoi utilizează funcția Date pentru a afișa data cu 30 de zile înaintea datei curente.

Începutul paginii

Funcții agregate SQL

Expresiile din următorul tabel utilizează funcții SQL (Structured Query Language) care sintetizează sau calculează date. Adesea, aceste funcții (de exemplu, Sum, Count și Avg) sunt denumite funcții agregate.

Pe lângă funcțiile agregate, Access furnizează de asemenea funcții agregate „de domeniu”, care se utilizează pentru însumarea sau contorizarea valorilor în mod selectiv. De exemplu, puteți să contorizați numai valorile dintr-un anumit interval sau să căutați o valoare din alt tabel. Setul de funcții agregate de domeniu include funcția DSum, funcția DCount și funcția DAvg.

Pentru a calcula totaluri, va fi deseori necesar să creați o interogare de totaluri. De exemplu, pentru a sintetiza pe grupuri, utilizați o interogare Totaluri. Pentru a activa o interogare Totaluri din grila de proiectare a interogării, faceți clic pe Totaluri în meniul Vizualizare.

Expresie

Descriere

RowCount: Count(*)

Creează un câmp denumit ContorRând, apoi utilizează funcția Count pentru a contoriza numărul de înregistrări dintr-o interogare, inclusiv înregistrări cu câmpuri nule (necompletate).

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Creează un câmp denumit ProcentTransport, apoi calculează procentul costurilor de expediere din fiecare subtotal prin împărțirea sumei valorilor din câmpul Transport la suma valorilor din câmpul Subtotal. (Acest exemplu utilizează funcția Sum.)

Această expresie trebuie utilizată cu o interogare Totaluri. Dacă setați proprietatea Format a câmpului la Procent, nu includeți *100.

Pentru mai multe informații despre crearea unei interogări Totaluri, consultați articolul Însumarea datelor utilizând o interogare.

AverageFreight: DAvg("[Freight]", "[Orders]")

Creează un câmp denumit MedieTransport, apoi utilizează funcția DAvg pentru a calcula media de transport pentru toate comenzile dintr-o interogare de tip Totaluri.

Începutul paginii

Câmpuri cu date lipsă

Expresiile afișate aici se utilizează cu câmpuri care pot avea informații lipsă, cum ar fi cele care conțin valori nule (necunoscute sau nedefinite). Valorile nule sunt întâlnite frecvent, de exemplu un preț necunoscut pentru un produs nou sau o valoare pe care un coleg a uitat să o adauge la o comandă. Capacitatea de a găsi și a procesa valori nule poate fi un aspect critic al operațiunilor cu baze de date, iar expresiile din următorul tabel demonstrează câteva modalități obișnuite de a gestiona valorile nule.

Expresie

Descriere

CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion])

Creează un câmp denumit ȚarăRegiuneCurentă, apoi utilizează funcțiile IIf și IsNull pentru a afișa un șir gol în acel câmp atunci când câmpul ȚarăRegiune conține o valoare nulă; altfel, afișează conținutul câmpului ȚarăRegiune.

LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Creează un câmp denumit TimpDeProcesare, apoi utilizează funcțiile IIf și IsNull pentru a afișa mesajul "Verifică dată lipsă" în cazul în care valoarea din câmpul DatăCerută sau DatăExpediere este nulă; altfel, afișează diferența de dată.

SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales])

Creează un câmp denumit VânzăriȘaseLuni, apoi afișează totalul valorilor din câmpurile VânzăriTrim1 și VânzăriTrim2 utilizând mai întâi funcția Nz pentru a efectua conversia oricăror valori nule la zero.

Începutul paginii

Câmpuri calculate cu subinterogări

Puteți utiliza o interogare imbricată, denumită și subinterogare, pentru a crea un câmp calculat. Expresia din următorul tabel este un exemplu de câmp calculat care rezultă dintr-o subinterogare.

Expresie

Descriere

Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID])

Creează un câmp denumit Cat, apoi afișează NumeCategorie, dacă IDCategorie din tabelul Categorii este identic cu IDCategorie din tabelul Produse.

Începutul paginii

Potrivirea cu valori text

Exemplele de expresii din acest tabel demonstrează criterii pentru găsirea valorilor text parțiale sau integrale.

Câmp

Expresie

Descriere

OrașExpediere

"London"

Afișează comenzile expediate în Londra.

OrașExpediere

"London" Or "Hedge End"

Utilizează operatorul Or pentru a afișa comenzile expediate către Londra sau Hedge End.

ȚarăRegiuneExpediere

In("Canada", "UK")

Utilizează operatorul In pentru a afișa comenzile expediate în Canada sau Regatul Unit.

ȚarăRegiuneExpediere

Not "USA"

Utilizează operatorul Not pentru a afișa comenzile expediate în țări/regiuni diferite de SUA.

NumeProdus

Not Like "C*"

Utilizează operatorul Not și caracterul wildcard * pentru a afișa produse ale căror nume nu încep cu C.

NumeFirmă

>="N"

Afișează comenzile expediate către companiile ale căror nume încep cu litere de la N la Z.

CodProdus

Right([ProductCode], 2)="99"

Utilizează funcția Right pentru a afișa comenzile cu valori CodProdus care se termină în 99.

NumeDestinatarComandă

Like "S*"

Afișează comenzile expediate către clienți ale căror nume încep cu litera S.

Începutul paginii

Potrivirea cu criteriile de dată

Expresiile din următorul tabel demonstrează utilizarea datelor și funcțiilor asociate în expresiile criteriu. Pentru mai multe informații despre introducerea și utilizarea valorilor de dată, consultați articolul Introducerea unei valori de tip dată sau oră.

Câmp

Expresie

Descriere

DatăExpediere

#2/2/2017#

Afișează comenzile expediate în data de 2 februarie 2017.

DatăExpediere

Date()

Afișează comenzile expediate astăzi.

DatăCerută

Between Date( ) And DateAdd("m", 3, Date( ))

Utilizează operatorul Between...And și funcțiile DateAdd și Date pentru a afișa comenzile cerute pentru următoarele trei luni, începând cu data de astăzi.

DatăComandă

< Date( ) - 30

Utilizează funcția Date pentru a afișa comenzile mai vechi de 30 de zile.

DatăComandă

Year([OrderDate])=2017

Utilizează funcția Year pentru a afișa comenzile cu datele de comandă în 2017.

DatăComandă

DatePart("q", [OrderDate])=4

Utilizează funcția DatePart pentru a afișa comenzile pentru al patrulea trimestru calendaristic.

DatăComandă

DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1

Utilizează funcțiile DateSerial, Year și Month pentru a afișa comenzile pentru ultima zi a fiecărei luni.

DatăComandă

Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now())

Utilizează funcțiile Year și Month și operatorul And pentru a afișa comenzile pentru anul și luna curente.

DatăExpediere

Between #1/5/2017# And #1/10/2017#

Utilizează operatorul Between...And pentru a afișa comenzile expediate nu mai devreme de 5 ianuarie 2017 și nu mai târziu de 10 ianuarie 2017.

DatăCerută

Between Date( ) And DateAdd("M", 3, Date( ))

Utilizează operatorul Between...And pentru a afișa comenzile cerute pentru următoarele trei luni începând de astăzi.

DataNașterii

Month([BirthDate])=Month(Date())

Utilizează funcțiile Month și Date pentru a afișa angajații a căror zi de naștere este în această lună.

Începutul paginii

Găsiți datele care lipsesc

Expresiile din următorul tabel funcționează cu câmpuri care pot avea informații lipsă — acele câmpuri care pot conține o valoare nulă sau un șir de lungime zero. O valoare nulă reprezintă lipsa de informații; ea nu reprezintă o valoare zero sau orice fel de valoare. Access acceptă ideea de informații lipsă deoarece conceptul este vital pentru integritatea unei baze de date. În lumea reală, se întâmplă deseori să lipsească informații, chiar dacă acest lucru este numai temporar (de exemplu, un preț nestabilit încă pentru un produs nou). De aceea, o bază de date care modelează o entitate din lumea reală, cum ar fi o afacere, trebuie să fie capabilă să înregistreze informații care lipsesc. Puteți să utilizați funcția IsNull pentru a determina dacă un câmp sau control conține o valoare nulă și să utilizați funcția Nz pentru a efectua conversia unei valori nule la zero.

Câmp

Expresie

Descriere

RegiuneExpediere

Is Null

Afișează comenzile pentru clienții al căror câmp RegiuneExpediere este nul (lipsește).

RegiuneExpediere

Is Not Null

Afișează comenzile pentru clienții al căror câmp RegiuneExpediere conține o valoare.

Fax

""

Afișează comenzile pentru clienții care nu au un aparat fax, indicate printr-o valoare șir de lungime zero în câmpul Fax în loc de o valoare nulă (lipsă).

Începutul paginii

Potrivirea modelelor de înregistrări cu Like

Operatorul Like oferă un grad mare de flexibilitate atunci când încercați să găsiți rânduri se potrivesc unui tipar, deoarece puteți să utilizați operatorul Like cu caractere wildcard și să definiți modele pe care Access să le găsească. De exemplu, caracterul wildcard * (asterisc) găsește o secvență de caractere de orice tip, ușurând procesul de găsire a tuturor numelor care încep cu o anumită literă. De exemplu, utilizați expresia Like "S*" pentru a găsi toate numele care încep cu litera S. Pentru mai multe informații, consultați articolul Operatorul Like.

Câmp

Expresie

Descriere

NumeDestinatarComandă

Like "S*"

Găsește toate înregistrările în câmpul NumeDestinatarComandă care încep cu litera S.

NumeDestinatarComandă

Like "*Imports"

Găsește toate înregistrările în câmpul NumeDestinatarComandă care se termină cu cuvântul „Importuri”.

NumeDestinatarComandă

Like "[A-D]*"

Găsește toate înregistrările în câmpul NumeDestinatarComandă care încep cu literele A, B, C sau D.

NumeDestinatarComandă

Like "*ar*"

Găsește toate înregistrările în câmpul NumeDestinatarComandă care încep cu secvența de litere „ar”.

NumeDestinatarComandă

Like "Maison Dewe?"

Găsește toate înregistrările din câmpul NumeDestinatarComandă care includ „Maison” în prima parte a valorii și un șir de cinci litere, din care primele patru sunt „Dewe”, iar ultima este necunoscută.

NumeDestinatarComandă

Not Like "A*"

Găsește toate înregistrările din câmpul ShipName (NumeDestinatarComandă) care nu încep cu litera A.

Începutul paginii

Potrivirea rândurilor cu agregate SQL

Puteți utiliza o funcție SQL sau agregată de domeniu atunci când aveți nevoie să însumați valori, să le contorizați sau să calculați medii ale acestora în mod selectiv. De exemplu, atunci când doriți să contorizați doar valorile care se încadrează într-un anumit interval sau care se evaluează la Da. Alteori, este posibil să fie nevoie să căutați o valoare din alt tabel pentru a o afișa. Exemplele de expresii din următorul tabel utilizează funcțiile agregate de domeniu pentru a efectua un calcul pentru un set de valori și utilizează rezultatul drept criteriu de interogare.

Câmp

Expresie

Descriere

Transport

> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))

Utilizează funcțiile DStDev și DAvg pentru a afișa toate comenzile pentru care costul de transport s-a ridicat deasupra mediei plus deviația standard pentru costul de transport.

Cantitate

> DAvg("[Quantity]", "[Order Details]")

Utilizează funcția DAvg pentru a afișa produsele comandate în cantități peste cantitatea medie de comandă.

Începutul paginii

Potrivirea câmpurilor cu subinterogări

Puteți să utilizați o subinterogare, denumită și interogare imbricată, pentru a calcula o valoare de utilizat ca criteriu. Exemplele de expresii din următorul tabel găsesc rândurile pe baza rezultatelor returnate de o subinterogare.

Câmp

Expresie

Afișează

PrețUnitar

(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup")

Produse al căror preț este același cu prețul Siropului de anason.

PrețUnitar

>(SELECT AVG([UnitPrice]) FROM [Products])

Produse cu prețul unitar peste medie.

Salariu

> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*"))

Salariul fiecărui reprezentant de vânzări al cărui salariu este mai mare decât al tuturor angajaților care au „Manager” sau „Vicepreședinte” în titlul lor.

TotalComandă: [PrețUnitar] * [Cantitate]

> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details])

Comenzi cu totaluri mai mari decât valoarea medie a comenzilor.

Începutul paginii

Interogările de actualizare

Puteți să utilizați interogări de actualizare pentru a modifica datele din unul sau mai multe câmpuri existente într-o bază de date. De exemplu, aveți posibilitatea să înlocuiți valori sau să le ștergeți complet. Acest tabel demonstrează arată câteva modalități de utilizare a expresiilor în interogările de actualizare. Puteți să utilizați aceste expresii în rândul Actualizare la din grila de proiectare a interogării pentru câmpul pe care doriți să-l actualizați.

Pentru mai multe informații despre crearea interogărilor de actualizare, consultați articolul Crearea și rularea unei interogări de actualizare.

Câmp

Expresie

Rezultat

Titlu

"Salesperson"

Modifică o valoare text la Vânzător

PornireProiect

#8/10/17#

Modifică o valoare de dată în 10 august 2017.

Retras

Yes

Modifică o valoare Nu dintr-un câmp Da/Nu în Da.

NumărComponentă

"PN" & [PartNumber]

Adaugă NC la începutul fiecărui număr specificat de componentă.

TotalElementLinie

[UnitPrice] * [Quantity]

Calculează produsul dintre PrețUnitar și Cantitate.

Transport

[Freight] * 1.5

Mărește cheltuielile de transport cu 50 de procente.

Vânzări

DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID])

Acolo unde valorile IDProdus din tabelul curent se potrivesc cu valorile IDProdus din tabelul Detalii Comandă, actualizează totalul de vânzări pe baza produsului câmpurilor Cantitate și PrețUnitar.

CodPoștalDestinatarComandă

Right([ShipPostalCode], 5)

Trunchiază caracterele din partea stângă, lăsând primele 5 caractere din dreapta.

PrețUnitar

Nz([UnitPrice])

Modifică o valoare nulă (nedefinită sau necunoscută) la (0) în câmpul UnitPrice (PrețUnitar).

Începutul paginii

Instrucțiunile SQL

Structured Query Language sau SQL, este limbajul de interogări utilizat de Access. Fiecare interogare pe care o creați în vizualizarea Proiectare poate fi exprimată și prin utilizarea SQL. Pentru a vedea instrucțiunea SQL pentru orice interogare, faceți clic pe Vizualizare SQL în meniul Vizualizare. Următorul tabel afișează exemple de instrucțiuni SQL care utilizează o expresie.

Instrucțiuni SQL care utilizează o expresie

Rezultat

SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio";

Afișează valorile din câmpurile FirstName (Prenume) și LastName (NumeFamilie) pentru angajații al căror nume de familie este Popescu.

SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID];

Afișează valorile din câmpurile IDProdus și NumeProdus din tabelul Produse pentru înregistrările în care valoarea IDCategorie care se potrivește cu valoarea IDCategorie specificată într-un formular deschis Produse noi.

SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000;

Calculează prețul detaliat mediu pentru comenzi pentru care valoarea câmpului PrețDetaliat este mai mare de 1000 și îl afișează într-un câmp denumit Preț detaliat mediu.

SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10;

Într-un câmp denumit IDNumărătoareProduse, afișează numărul total de produse pentru categoriile cu mai mult de 10 produse.

Începutul paginii

Expresii tabel

Cele mai comune două moduri de a utiliza expresii în tabele sunt atribuirea unei valori implicite și crearea unei reguli de validare.

Valori implicite de câmp

Când proiectați o bază de date, poate fi necesar să atribuiți o valoare implicită unui câmp sau control. Access furnizează valoarea implicită atunci când se creează o înregistrare nouă care conține câmpul sau un obiect care conține controlul. Expresiile din următorul tabel reprezintă exemple de valori implicite pentru un câmp sau control. Dacă un control este legat de un câmp dintr-un tabel, iar câmpul are o valoare implicită, valoarea implicită a controlului are prioritate.

Câmp

Expresie

Valoare implicită câmp

Cantitate

1

1

Regiune

"MT"

MT

Regiune

"New York, N.Y."

New York, N.Y. (Rețineți că trebuie să încadrați valoarea între ghilimele dacă există semne de punctuație.)

Fax

""

Un șir de lungime zero pentru a indica faptul că, în mod implicit, câmpul ar trebui să fie gol în loc să conțină o valoare nulă

Dată Comandă

Date( )

Data de astăzi

DatăScadentă

Date() + 60

Data de peste 60 de zile începând cu ziua de azi

Începutul paginii

Regulile de validare a câmpurilor

Puteți să creați o regulă de validare pentru un câmp sau control utilizând o expresie. Access impune apoi regula atunci când se introduc date în câmp sau control. Pentru a crea o regulă de validare, modificați proprietatea RegulăValidare a câmpului sau controlului. De asemenea, ar trebui să luați în considerare setarea proprietății TextValidare, care conține textul pe care Access îl afișează când se încalcă o regulă de validare. Dacă nu setați proprietatea TextValidare, Access afișează un mesaj implicit de eroare.

Exemplele din următorul tabel demonstrează utilizarea expresiilor de reguli de validare pentru proprietatea RegulăValidare și textul asociat pentru proprietatea TextValidare.

Proprietatea RegulăValidare

Proprietatea TextValidare

<> 0

Introduceți o valoare diferită de zero.

0 Or > 100

Valoarea trebuie să fie 0 sau mai mare decât 100.

Like "K???"

Valoarea trebuie să aibă patru caractere și să înceapă cu litera K.

< #1/1/2017#

Introduceți o dată anterioară datei de 01.01.2017.

>= #1/1/2017# And < #1/1/2008#

Data trebuie să fie în 2017.

Pentru mai multe informații despre validarea datelor, consultați articolul Crearea unei reguli de validare pentru validarea datelor dintr-un câmp.

Începutul paginii

Expresii de tip macrocomenzi

În unele cazuri, puteți dori să efectuați o acțiune sau o serie de acțiuni într-o macrocomandă numai dacă este adevărată o anumită condiție. De exemplu, să presupunem că doriți ca o acțiune să ruleze numai atunci când valoarea din caseta text Contor este 10. Utilizați o expresie pentru a defini condiția din coloana Condiție a macrocomenzii:

[Counter]=10

La fel ca în cazul proprietății RegulăValidare, expresia din coloana Condiție este o expresie condițională. Ea trebuie să aibă ca rezultat o valoare True sau False. Acțiunea se petrece numai atunci când condiția este adevărată.

Sfat    Pentru a forța Access să ignore temporar o acțiune, tastați False drept condiție. Acest lucru poate fi util atunci când încercați să depistați probleme într-o macrocomandă.

Utilizați această expresie pentru efectuarea acțiunii

Dacă

[City]="Paris"

Paris este valoarea câmpului City (Oraș) din formularul din care a fost executată macrocomanda.

DCount("[OrderID]", "Orders") > 35

Există mai mult de 35 de intrări în câmpul OrderID (IDComandă) al tabelului Orders (Comenzi).

DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3

Există mai mult de trei intrări în tabelul Detalii Comandă pentru care câmpul IDComandă din tabel se potrivește cu câmpul IDComandă din formularul Comenzi.

[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017#

Valoarea din câmpul ShippedDate (DatăExpediere) din formularul din care se execută macrocomanda se încadrează între 2 februarie 2017 și 2 martie 2017.

Forms![Products]![UnitsInStock] < 5

Valoarea câmpului UnitsInStock (UnitățiÎnStoc) din formularul Produse este mai mică decât 5.

IsNull([FirstName])

Valoarea Prenume din formularul din care se execută macrocomanda este nulă (nu există). Această expresie este echivalentă cu [Prenume] Is Null.

[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100

Valoarea din câmpul ȚarăRegiune din formularul din care se execută macrocomanda este Regatul Unit, iar valoarea câmpului TotalComenzi din formularul TotalVânzări este mai mare decât 100.

[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5

Valoarea din câmpul ȚarăRegiune din formularul din care se execută macrocomanda este Franța, Italia sau Spania, iar codul poștal nu are lungimea de 5 caractere.

MsgBox("Confirm changes?",1)=1

Faceți clic pe OK într-o casetă de dialog afișată de MsgBox. Dacă faceți clic pe Anulare în caseta de dialog, Access ignoră acțiunea.

Începutul paginii

Consultați și

Utilizarea Generatorului de expresii

Introducere în expresii

Crearea unei expresii

Ghid pentru sintaxa expresiilor

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.

×