Sunteți pe pagina 1din 10

OPERATORI, EXPRESII I FUNCII UTILIZATE N INTEROGRI Expresiile sunt elemente utilizate pentru definirea criteriilor de selecie, regulilor de validare

sau cmpurilor calculate, formate dintr-o combinaie de operatori, constante, variabile i funcii ce au ca rezultat o anumit valoare. Elementele unei expresii Access sunt: Operatorii simboluri matematice; Funciile proceduri ce returneaz o valoare. Constantele valori numerice sau iruri de caractere care nu-i schimb valoarea; OPERATORII Operatorii utilizai n construirea expresiilor Access 2007 se pot clasifica astfel: Aritmetici ^ Ridic un numr la o putere (Exemplu: 3^5=35) * nmuleste dou numere / mparte dou numere MOD Returneaz restul mpririi a dou numere + Adun dou numere Scade dou numere de concatenare a dou iruri de caractere & Concateneaz dou iruri de caractere + Adun valorile a dou campuri numerice, dar poate fi utilizat i pentru concatenarea a dou siruri de caractere

de comparaie = Verific egalitatea a dou valori <> Verific dac dou valori sunt diferite. Exemplu: pentru atributul Adresa criteriul de selecie <> Bucuresti, va determina afiarea nregistrrilor din provincie. < Verific dac o valoare este mai mic decat alta > Verific dac o valoare este mai mare decat alta <= Verific dac o valoare este mai mic sau egal decat alta >= Verific dac o valoare este mai mare sau egal decat alta Like Verific dac valoarea unui camp corespunde unui tipar. Exemplu: pentru atributul NumeFz criteriul de selecie LIKE SC * va determina afiarea tuturor furnizorilor al cror nume ncepe cu SC. Simbolul * nlocuiete un ir de caractere de orice dimensiune. Between Verific dac valoarea unui camp se afl n intervalul val1 i val2. val1 and Exemplu: pentru atributul Pret criteriul de selecie val2 BETWEEN 100 AND 700 va determina afiarea mrfurilor ce au pretul cuprins ntre 100 i 700.

Logici NOT

AND OR IMP EQV

Introduce o negaie. Exemplu: pentru atributul DenMarfa criteriul de selecie NOT portocale afieaz toate mrfurile mai puin portocalele. Efectueaz conjuncia a dou valori. Efectueaz disjuncia a dou valori. Operatorul implic. Verific echivalena a dou valori.

ali operatori IN precizeaz mulimea de valori admise pentru un atribut; Exemplu: pentru atributul Localitate se poate impune criteriul de selecie IN (Bucuresti, Ploiesti, Arad) IS NULL selecteaz nregistrrile care nu au introduse valori; Exemplu: pentru atributul DataScad criteriul de selecie IS NULL va determina afiarea nregistrrilor pentru care Data scadentei nu este completat

FUNCIILE Funciile utilizate n construirea expresiilor Access 2010 pot fi de natur: Dat calendaristic DATE() returneaz data curent, NOW() returneaz data i ora curent MONTH(data extrage numrul lunii dintr-o dat calendaristic, specificat ca calendaristica) argument. YEAR(data extrage anul dintr-o data calendaristic, specificat ca calendaristica) argument. FORMAT afieaz ntr-un anumit format o expresie de tip dat calendaristica, numeric, memo sau text. DATEPART Afieaz date pentru un anumit interval de timp specificat WEEKDAY extrage numrul zilei din sptmn aferent unei date calendaristice FORMAT - afieaz ntr-un anumit format o expresie de tip dat calendaristica, numeric, memo sau text. Sintaxa: FORMAT(expresie [, format] [, prima-zi-a-sapt] [, prima-sapt-din-an]) unde: prima-zi-a-sapt este un argument opional ce poate lua valorile: 1 atunci cand se considera prima zi a sptmanii Duminica (valoare implicita) 2 atunci cand se consider prima zi a sptmnii Luni.

3 atunci cand se consider prima zi a sptmnii Mari. 7 atunci cand se consider prima zi a sptmnii Smbta.

prima-sapt-din-an este un argument opional ce poate lua valorile: 1 atunci prima sptmn este considerat cea care include ziua de 1 Ianuarie, (valoare implicita) 2 atunci prima sptmn este considerat, cea care include cel putin 4 zile calendaristice. 3 atunci prima sptmn este considerat, cea care include include 7 zile calendaristice. Exemple: Format(data calendaristica, mmm) afieaza primele 3 caractere ale lunii, din data calendaristica specificat n argument. Format(Datafact, q) afiseaz trimestrul asociat datei de factur. DATEPART Sintaxa: Datepart(interval, datacalendaristic [, prima-zi-a-sapt] [, prima-sapt-din-an]) unde: interval poate lua valorile o yyyy specificarea anului o q trimestrul o m - luna o w - ziua din sptmn o ww - sptmana din an prima-zi-a-sapt, prima-sapt-din-an sunt argumente opionale care au aceeai semnificaie cu cele prezentate n funcia Format. Exemple: Datepart(q,Datafact)=1 afieaz facturile emise n primul trimestru. WEEKDAY - returneaz un numr ce reprezint ziua din sptmn asociat datei calendaristice specificate n argumentul su. Sintaxa: WeekDay(data calendaristica [, prima-zi-a-sapt]) unde: prima-zi-a-sapt este un argument opional ce poate lua valorile: 1 atunci cand se considera prima zi a sptmanii Duminica (valoare implicita) 2 atunci cand se consider prima zi a sptmnii Luni. 3 atunci cand se consider prima zi a sptmnii Mari. 7 atunci cand se consider prima zi a sptmnii Smbta. Exemple: Weekday(Datafact,2)=6 selecteaz facturile care au fost emise Smbta.

Funcia DateSerial Afieaz o valoare pentru un an, o lun i o zi specificat. Sintaxa DateSerial(an, lun, zi) Sintaxa funciei DateSerial are urmtoareleargumente: ARGUMENT DESCRIERE

an

Obligatoriu. ntreg. Numr ntre 100 i 9999 inclusiv sau o expresie numeric.

lun zi

Obligatoriu. ntreg. Orice expresie numeric. Obligatoriu. ntreg. Orice expresie numeric.

Observaii Pentru a specifica o dat, cum ar fi 31 Decembrie, 1991, intervalul numeric pentru fiecare argument DateSerial ar trebui s se afle n intervalul acceptat pentru unitate; adic, 131 pentru zile i 112 pentru luni. Totui, se pot specifica de asemenea date relative pentru fiecare argument utiliznd orice expresie numeric ce reprezint un numr de zile, luni sau ani, nainte sau dup o anumit dat. Urmtorul exemplu utilizeaz expresii numerice n loc de numere de dat absolute. Aici funcia DateSerial returneaz o dat care este nainte de prima zi (1 - 1), dou luni nainte de August (8 - 2), 10 ani nainte de 1990 (1990 - 10); cu alte cuvinte, 31 Mai, 1980. DateSerial(1990 - 10, 8 - 2, 1 - 1) Anii compui din dou cifre pentru argumentul an se interpreteaz n funcie de setrile din computer definite de utilizator. Setrile implicite sunt astfel nct valorile ntre 0 i 29, inclusiv, se interpreteaz drept anii 20002029. Valorile implicite ntre 30 i 99 se interpreteaz drept anii 19301999. Pentru oricare alte argumente an, utilizai un an exprimat prin patru cifre (de exemplu, 1800). Versiunile de Windows anterioare Windows 2000 interpreteaz anii exprimai prin dou cifre n funcie de setrile implicite descrise mai sus. Pentru a v asigura c funcia returneaz valoarea corespunztoare, utilizai un an exprimat prin patru cifre Cnd un argument depete intervalul acceptat pentru acel argument, acesta se incrementeaz la cea mai mare unitate urmtoare dup cum este cazul. De exemplu, dac specificai 35 de zile, se evalueaz la o lun i cteva zile, n funcie de momentul din an n care se aplic. Dac oricare argument este n afara intervalului de -32,768 la 32,767, se produce o eroare. Dac data specificat de cele trei argumente se afl n afara intervalului de date acceptat, se produce o eroare. NOT Pentru an, lun i zi, dac setarea proprietii Calendar este Gregorian, data furnizat se consider ca fiind de tip Gregorian. Dac setarea proprietii Calendar este Hijri, valoarea furnizat se consider ca fiind de tip Hijri. Partea de dat returnat este exprimat n uniti ale calendarului Visual Basic curent. De exemplu, dac tipul de calendar este Hijri i partea de dat care se returneaz este anul, valoarea anului este un an Hijri. Pentru argumentul an, valorile ntre 0 i 99 inclusiv, se interpreteaz drept anii 1400-1499. Pentru oricare alt valoare an, utilizai anul complet din patru cifre (de exemplu, 1520).

Exemplu NOT Exemplele care urmeaz demonstreaz utilizarea acestei funcii ntr-un modul Visual Basic for Applications (VBA). Pentru mai multe informaii despre lucrul cu VBA, selectai Referin dezvoltator n lista vertical de lng Cutare i introducei unul sau mai muli termeni n caseta de cutare. Acest exemplu utilizeaz funcia DateSerial pentru a returna data pentru anul, luna i ziua specificate. Dim MyDate ' MyDate contains the date for February 12, 1969. MyDate = DateSerial(1969, 2, 12) ' Return a date. Funcia DateAdd Afiseaza o valoare ce conine o dat la care s-a adugat un interval de timp specificat. Sintaxa DateAdd(interval, numr, dat) Sintaxa funciei DateAdd are urmtoarele argumente: ARGUMENT DESCRIERE interval Obligatoriu. Expresie ir ce reprezint intervalul de timp care se returneaz. numr Obligatoriu. Expresie numeric care reprezint numrul de intervale care se adaug. Poate fi pozitiv (pentru a obine date din viitor) sau negative (pentru a obine date din trecut). dat Obligatoriu. Variant (Data) sau literal ce reprezint data la care se adaug intervalul. Setri Argumentul interval are urmtoarele setri: SETARE DESCRIERE yyyy Anul q Trimestrul m Luna y Ziua din an d Ziua w Ziua din sptmn ww Sptmna h Ora n Minutul s Secunda Observaii Se poate utiliza funcia DateAdd pentru a aduna sau scdea un interval de timp la o dat. De exemplu, se poate utiliza DateAdd pentru a calcula data de peste 30 de zile fa de ziua de azi sau ora peste 45 de minute ncepnd de acum. Pentru a aduga zile la o data, se poate utiliza Ziua din an ("y"), Ziua ("d") sau Ziua de sptmn ("w"). Funcia DateAdd nu va returna o dat valid. Urmtorul exemplu adaug o lun la 31 Ianuarie: DateAdd("m", 1, "31-Jan-95")

n acest caz, DateAdd returneaz 28-Feb-95, i nu 31-Feb-95. Dac data este 31-Ian-96, returneaz 29Feb-96 deoarece 1996 este un an bisect. Dac data calculat precede anul 100 (adic, se scad mai muli ani dect sunt n data), se produce o eroare. Dac numr nu este o valoare de tip ntreg lung, acesta se rotunjete la cel mai apropiat numr ntreg nainte de a se evalua.

NOT Formatul valorii returnate de DateAdd este determinat de setrile din Panoul de control, i nu de formatul furnizat n argumentul dat argument. NOT Pentru dat, dac setarea proprietii Calendar este Gregorian, data furnizat trebuie s fie Gregorian. Dac tipul de calendar este Hijri, data furnizat trebuie s fie Hijri. Dac valorile lun sunt nume, numele trebuie s fie consistent cu setarea curent a proprietii Calendar. Pentru a minimaliza posibilitatea ca numele lunilor s intre n conflict cu setarea curent a proprietii Calendar, introducei valori lun numerice (format Dat scurt). Exemplu NOT Exemplele care urmeaz demonstreaz utilizarea acestei funcii ntr-un modul Visual Basic for Applications (VBA). Pentru mai multe informaii despre lucrul cu VBA, selectai Referin dezvoltator n lista vertical de lng Cutare i introducei unul sau mai muli termeni n caseta de cutare. Acest exemplu utilizeaz o dat ca intrare i utilizeaz funciaDateAdd pentru a afia o dat viitoare corespondent unui numr de luni . Dim FirstDate As Date ' Declare variables. Dim IntervalType As String Dim Number As Integer Dim Msg IntervalType = "m" ' "m" specifies months as interval. FirstDate = InputBox("Enter a date") Number = InputBox("Enter number of months to add") Msg = "New date: " & _ DateAdd(IntervalType, Number, FirstDate) MsgBox Msg Functia DateDiff Calculeaza si afiseaza diferena dintre dat2 i dat1. Sintaxa DateDiff(interval, dat1, dat2 [, primazidinsptmn] [, primasptmndinan] ) Funcia DateDiff are aceste argumente argumente: ARGUMENT DESCRIERE interval Obligatoriu. Expresie ir ce reprezint intervalul de timp utilizat pentru a calcula diferena dintre dat1 i dat2. dat1, dat2 Obligatoriu. Variant (Dat). Dou date ce se utilizeaz n calculare. primazidinsptmn Opional. O constant ce specific prima zi din sptmn. Dac nu se specific, se consider implicit Duminic. primasptmndinanOpional. O constant care specific prima sptmn din an. Dac nu se specific, prima sptmn se consider implicit ca fiind sptmna n care se gsete 1 Ianuarie. Setri Argumentul interval are urmtoarele setri: SETARE DESCRIERE yyyy Anul q Trimestrul m Luna

y Ziua din an d Ziua w Ziua din sptmn ww Sptmna h Ora n Minutul s Secunda Argumentul primazidinsptmn are urmtoarele setri: CONSTANT VALOARE DESCRIERE vbUseSystem 0 Utilizeaz setarea NLS API. vbSunday 1 Duminic (implicit) vbMonday 2 Luni vbTuesday 3 Mari vbWednesday 4 Miercuri vbThursday 5 Joi vbFriday 6 Vineri vbSaturday 7 Smbt CONSTANT VALOARE DESCRIERE vbUseSystem 0 Utilizeaz setarea NLS API. vbFirstJan1 1 ncepe cu sptmna n care se gsete 1 Ianuarie (implicit). vbFirstFourDays2 ncepe cu prima sptmn care are cel puin 4 zile incluse n noul an. vbFirstFullWeek3 ncepe cu prima sptmn ntreag a anului. Observaii Se poate utiliza funcia DateDiff pentru a determina cte intervale specificate exist ntre dou date. De exemplu, se poate utiliza DateDiff pentru a calcula numrul de zile dintre dou date, sau numrul de sptmni dintre ziua de azi i sfritul anului. Pentru a calcula numrul de zile dintre dat1 i dat2, se utilizeaz fie Ziua din an ("y") sau Zi ("d"). Cnd interval este Zi din sptmn ("w"), DateDiff returneaz numrul de sptmni dintre dou date. Dac dat1 este Luni, DateDiff numr cte zile de Luni sunt pn la dat2. Numr dat2 dar nu dat1. Dac interval este Sptmn ("ww"), totui, funcia DateDiff returneaz numrul de sptmni calendaristice dintre dou date. Funcia contorizeaz numrul de Duminici dintre dat1 i dat2. DateDiff contorizeaz dat2 dac este ntr-o Duminic; dar nu contorizeaz dat1, chiar dac este Duminica. Dac dat1 face referire la un moment de timp ulterior datei dat2, funcia DateDiff returneaz un numr negativ. Argumentul primazidinsptmn afecteaz calculele care utilizeaz simbolurile de interval "w" i "ww". Dac dat1 sau dat2 este o dat literal, anul specificat devine parte permanent a acelei date. Totui, dac dat1 sau dat2 sunt ncadrate de ghilimele (" "), i se omite anul, se insereaz anul curent n cod de fiecare dat cnd se evalueaz expresia dat1 sau dat2. Aceasta face posibil scrierea de cod care se poate utiliza n ani diferii. Cnd se compar 31 Decembrie cu 1 Ianuarie a anului imediat urmtor, DateDiff pentru An ("yyyy") returneaz 1, chiar dac a trecut o singur zi. NOT Pentru dat1 i dat2, dac setarea proprietii Calendar este Gregorian, data furnizat trebuie s fie Gregorian. Dac tipul de calendar este Hijri, data furnizat trebuie s fie Hijri. Exemple

Utilizarea funciei DateDiff ntr-o expresie Se poate utiliza funcia DateDiff de fiecare dat cnd este posibil utilizarea expresiilor. De exemplu, s presupunem c avei un formular utilizat pentru completarea comenzilor clienilor. n tabelul Comenzi, exist un cmp PrimirenainteDe care conine data pn la care clientul trebuie s primeasc comanda. Se poate utiliza funcia DateDiff cu o caset text pe formular pentru a afia numrul de zile rmase pn cnd trebuie expediat comanda. Dac se presupune c sunt necesare 10 zile pentru a expedia orice comand, setai proprietatea Surs control a casetei text dup cum urmeaz: =DateDiff(d, Now(), *Comenzi+.*PrimirenainteDe+)-10 Cnd se deschide formularul n Vizualizare formular, caseta text afieaz numrul de zile rmase pn cnd trebuie expediat comanda. Dac au rmas mai puin de 10 zile pn cnd clientul trebuie s primeasc comanda, numrul din caseta text va fi negativ i va indica numrul de zile de ntrziere care vor fi dac se trimite imediat comanda. Utilizarea funciei DateDiff n cod VBA NOT Exemplele care urmeaz demonstreaz utilizarea acestei funcii ntr-un modul Visual Basic for Applications (VBA). Pentru mai multe informaii despre lucrul cu VBA, selectai Referin dezvoltator n lista vertical de lng Cutare i introducei unul sau mai muli termeni n caseta de cutare. Acest exemplu utilizeaz funcia DateDiff pentru a afia numrul de zile dintre o dat specificat i data de azi. Dim TheDate As Date ' Declare variables. Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg Functia DatePart Evalueaza o dat i a returneaza un interval de timp specific. Sintaxa: DatePart(interval, dat [, primazidinsptmn] [, primasptmndinan] ) Funcia DatePart are urmtoareleargumente: ARGUMENT DESCRIERE interval Obligatoriu. Expresie ir ce reprezint intervalul de timp care se returneaz. dat Obligatoriu. Valoare de tip Variant (Dat) care se evalueaz. primaziasptmnii Opional. O constant ce specific prima zi din sptmn. Dac nu se specific, se consider implicit Duminic. primasptmndinanOpional. O constant care specific prima sptmn din an. Dac nu se specific, prima sptmn se consider implicit ca fiind sptmna n care se gsete 1 Ianuarie. Setri Argumentul interval are urmtoarele setri: SETARE DESCRIERE yyyy Anul q Trimestrul m Luna y Ziua din an

d Ziua w Ziua din sptmn ww Sptmna h Ora n Minutul s Secunda Argumentul primazidinsptmn are urmtoarele setri: CONSTANT VALOARE DESCRIERE vbUseSystem 0 Utilizeaz setarea NLS API. vbSunday 1 Duminic (implicit) vbMonday 2 Luni vbTuesday 3 Mari vbWednesday 4 Miercuri vbThursday 5 Joi vbFriday 6 Vineri vbSaturday 7 Smbt Argumentul primasptmndinan are urmtoarele setri: CONSTANT VALOARE DESCRIERE vbUseSystem 0 Utilizeaz setarea API NLS. vbFirstJan1 1 ncepe cu sptmna n care se gsete 1 Ianuarie (implicit). vbFirstFourDays2 ncepe cu prima sptmn care are cel puin 4 zile incluse n noul an. vbFirstFullWeek3 ncepe cu prima sptmn ntreag a anului. Observaii Se poate utiliza funcia DatePart pentru a evalua o dat i a returna un interval de timp specific. De exemplu, se poate utiliza DatePart pentru a calcula ziua sptmnii sau ora curent. Argumentul primazidinsptmn afecteaz calculele care utilizeaz simbolurile de interval "w" i "ww". Dac date este o dat literal, anul specificat devine parte permanent a acelei date. Totui, dac dat este ncadrat de ghilimele (" "), i se omite anul, se insereaz anul curent n cod de fiecare dat cnd se evalueaz expresia dat. Aceasta face posibil scrierea de cod care se poate utiliza n ani diferii. NOT Pentru date, dac setarea proprietii Calendar este Gregorian, data furnizat trebuie s fie Gregorian. Dac tipul de calendar este Hijri, data furnizat trebuie s fie Hijri. Partea de dat returnat este exprimat n unitile de timp ale calendarului Arabic curent. De exemplu, dac tipul de calendar este Hijri i partea de dat care se returneaz este anul, valoarea anului este un an Hijri. Exemplu NOT Exemplele care urmeaz demonstreaz utilizarea acestei funcii ntr-un modul Visual Basic for Applications (VBA). Pentru mai multe informaii despre lucrul cu VBA, selectai Referin dezvoltator n lista vertical de lng Cutare i introducei unul sau mai muli termeni n caseta de cutare. Acest exemplu preia o dat i, utiliznd funcia DatePart, afieaz trimestrul din an n care se gsete. Dim TheDate As Date ' Declare variables. Dim Msg TheDate = InputBox("Enter a date:") Msg = "Quarter: " & DatePart("q", TheDate) MsgBox Msg

Text Len (X) Trim (X) Left (X,n) Right(X,n) Mid(X, start, n) Str(X)

returnez lungimea unui ir. elimina spaiile de la nceputul i sfaritul unui ir. returneaz primele n caractere extrase din stanga unui ir returneaz primele n caractere extrase din dreapta unui ir Returneaz n caractere, ncepand de la un punct de start, dintr-un ir Convertete numrul specificat n argument ntr-un ir de caractere

Matematice ABS (X) INT (X) ROUND(X, n)

returnez valoarea absolut a valorii numerice specificate returneaz partea ntreag dintr-un numr rotunjeste o valoare specificat la un numr precizat de zecimale.

Financiare PV() RATE() PMT() SLN()

returnez valoarea actual a unei anuiti pltite n rate periodice egale calculeaz rata dobanzii lunare pentru un mprumut Calculeaz plata lunar pentru un mprumut bazat pe pli constante i o rat constant a dobanzii Returneaz amortizarea liniar a unui mijloc fix pe o anumit perioad.

Alte funcii

IIF(conditie, Valoare-adevar,Valoare-fals) returneaz Valoare-adevar daca conditia este adevarata altfel Valoare-fals. Exemple: ADAOS: IIF(PRET >100, PRET*10/100, PRET*5%) definete un cmp calculat ADAOS cu valori de 10% din pre, pentru mrfurile ce au preul mai mare de 100 i valori de 5% din pre, pentru mrfurile ce au preul mai mic sau egal cu 100.

S-ar putea să vă placă și