Kada koristite Microsoft Access često morate da radite sa vrednostima koje se ne nalaze direktno u podacima. Na primer, želite da izračunate porez na promet u porudžbini ili ukupnu vrednost porudžbine. Te vrednosti možete da izračunate koristeći izraze. Da biste koristili izraze, pišete ih koristeći ispravnu sintaksu. Sintaksa je skup pravila na osnovu kojih se reči i simboli u izrazu ispravno kombinuju. U početku je pomalo teško čitati izraze u programu Access. Ali, uz dobro razumevanje sintakse izraza i malo prakse, to postaje mnogo lakše.
Ovaj članak sadrži
Pregled izraza
Izraz je kombinacija nekih ili svih sledećih stavki: ugrađenih ili korisnički definisanih funkcija, identifikatora, operatora, vrednosti i konstanti koje se procenjuju u jednu vrednost.
Na primer, sledeći izraz sadrži uobičajene komponente:
=Sum([Purchase Price])*0.08
-
Sum() je ugrađena funkcija
-
[Purchase Price] je identifikator
-
* je matematički operator
-
0.08 je konstanta
Ovaj izraz može da se koristi u okviru za tekst u podnožju obrasca ili podnožju izveštaja za izračunavanje poreza na promet za grupu stavki.
Izrazi mogu da budu mnogo složeniji ili mnogo jednostavniji od ovog primera. Na primer, ovaj Bulov izraz sastoji se samo od operatora i konstante:
>0
Ovaj izraz vraća:
-
True kada se uporedi sa brojem koji je veći od 0.
-
False kada se uporedi sa brojem koji je manji od 0.
Ovaj izraz možete da koristite u svojstvu Pravilo za validaciju kontrole ili polja tabele da biste osigurali da se unose samo pozitivne vrednosti. Izrazi se koriste na mnogim mestima za izračunavanja, rukovanje znakovima ili testiranje podataka. Tabele, upiti, obrasci, izveštaji i makroi imaju svojstva koja prihvataju izraz. Na primer, možete da koristite izraze u svojstvima Izvor kontrole i Podrazumevana vrednost za kontrolu. Takođe možete da koristite izraze u svojstvu Pravilo za validaciju polja u tabeli.
Komponente izraza
Da biste napravili izraz, kombinujte identifikatore pomoću funkcija, operatora, konstanti i vrednosti. Bilo koji važeći izraz mora da sadrži najmanje jednu funkciju ili bar jedan identifikator i može da sadrži i konstante ili operatore. Izraz možete da koristite i kao deo drugog izraza – obično kao argument neke funkcije. To se naziva ugnežđivanje izraza.
-
Identifikatori Opšti oblik je:
[Collection name]![Object name].[Property name]
Neophodno je da navedete samo dovoljno delova identifikatora da bi on bio jedinstven u kontekstu izraza. Nije neuobičajeno da identifikator ima oblik [Object name].
-
Funkcije Opšti oblik je:
Function(argument, argument)
Jedan od argumenata je obično identifikator ili izraz. Neke funkcije ne zahtevaju argumente. Pre nego iskoristite određenu funkciju, pregledajte sintaksu te funkcije. Više informacija potražite u članku Funkcije (raspoređene po kategorijama).
-
Operatori Opšti oblik je:
Identifier operator identifier
Postoje izuzeci od ovog oblika, kao što je objašnjeno u odeljku Operatori.
-
Konstante Opšti oblik je:
Identifier comparison_operator constant
-
Vrednosti Vrednosti mogu da se jave na brojnim lokacijama u izrazu.
Objekti, kolekcije i svojstva
Sve tabele, upiti, obrasci, izveštaji i polja u Access bazi podataka pojedinačno su poznati kao objekti. Svaki objekat ima ime. Neki objekti su već imenovani, na primer tabela „Kontakti“ u bazi podataka napravljena od predloška „Kontakti“ u programu Microsoft Office Access. Kad pravite novi objekat, dajete mu ime.
Skup svih članova određenog tipa objekta poznat je kao kolekcija. Na primer, skup svih tabela u bazi podataka predstavlja kolekciju. Neki objekti koji su član kolekcije u bazi podataka mogu da budu i kolekcije koje sadrže druge objekte. Na primer, objekat tabele predstavlja kolekciju koja sadrži objekte polja.
Objekti imaju svojstva koja opisuju karakteristike objekta i pružaju način za njihovu promenu. Na primer, objekat upita ima svojstvo Podrazumevani prikaz koje opisuje i omogućava vam da navedete kako će upit izgledati kad ga pokrenete.
Sledeći dijagram ilustruje relaciju između kolekcija, objekata i svojstava:
|
3 Svojstvo 2 Objekat 1 Kolekcija |
Identifikatori
Kad koristite neki objekat, kolekciju ili svojstvo u izrazu, na taj element upućujete koristeći identifikator. Identifikator sadrži ime elementa koji identifikujete i ime elementa kojem pripada. Na primer, identifikator za polje sadrži ime polja i ime tabele kojoj polje pripada. Primer takvog identifikatora je:
[Customers]![BirthDate]
U nekim slučajevima, ime elementa samostalno funkcioniše kao identifikator. To važi kad je ime elementa jedinstveno u kontekstu izraza koji pravite. Ostatak identifikatora impliciran je kontekstom. Na primer, ako dizajnirate upit koji koristi samo jednu tabelu, imena polja će samostalno funkcionisati kao identifikatori jer imena polja moraju da budu jedinstvena u datoj tabeli. Budući da koristite samo jednu tabelu, ime tabele se podrazumeva u bilo kom identifikatoru koji koristite u upitu da biste uputili na polje.
U drugim slučajevima, morate biti eksplicitni u vezi sa delovima identifikatora da bi referenca funkcionisala. To važi kad identifikator nije jedinstven u kontekstu izraza. Kad postoji dvosmislenost, morate izričito da navedete dovoljno delova identifikatora da bi on bio jedinstven u kontekstu. Na primer, recimo da dizajnirate upit koji koristi tabelu pod imenom „Proizvodi“ i tabelu pod imenom „Porudžbine“, a obe tabele imaju polje pod imenom ID proizvoda. U tom slučaju, identifikator koji koristite u upitu da biste uputili na bilo koje od ta dva polja ID proizvoda mora da sadrži ime tabele pored imena polja. Na primer:
[Products]![ProductID]
Operatori identifikatora Postoje tri operatora koje možete da koristite u identifikatoru:
-
Uzvičnik (!)
-
Tačka (.)
-
Uglaste zagrade ([ ])
Koristite ove operatore tako što ćete svaki deo identifikatora okružiti uglastim zagradama, a zatim ih povežite pomoću operatora u vidu uzvičnika ili tačke. Na primer, identifikator za polje pod imenom „Prezime“ u tabeli pod imenom „Zaposleni“ može da se izrazi kao [Employees]![Last Name]. Uzvičnik govori programu Access da je ono što sledi objekat koji pripada kolekciji koja prethodi uzvičniku. U ovom slučaju, [Prezime] predstavlja objekat polja koji pripada kolekciji [Zaposleni] koja je sama objekat tabele.
Konkretno, ne morate uvek da otkucate uglaste zagrade oko identifikatora ili delimičnog identifikatora. Ako u identifikatoru ne postoje razmaci ili drugi specijalni znakovi, Access automatski dodaje zagrade kad pročita izraz. Međutim, preporučuje se da sami otkucate zagrade – to vam pomaže da izbegnete greške, a funkcioniše i kao vizuelni nagoveštaj da je određeni deo izraza identifikator.
Funkcije, operatori, konstante i vrednosti
Da biste napravili izraz, nisu vam dovoljni identifikatori – morate da izvršite radnju neke vrste. Za izvršavanje radnji u izrazu koristite funkcije, operatore i konstante.
Funkcije
Funkcija je procedura koju možete da koristite u izrazu. Neke funkcije, na primer „Date“, ne zahtevaju nikakav unos da bi funkcionisale. Međutim, većina funkcija zahteva unos, koji se naziva argumenti.
U primeru na početku ovog članka, funkcija „DatePart“ koristi dva argumenta: argument „interval“, sa vrednošću od "yyyy" i argument „date“, sa vrednošću od [Customers]![BirthDate]. Funkcija „DatePart“ zahteva najmanje ta dva argumenta („interval“ i „date“), ali može da prihvati i do četiri argumenta.
Sledeća lista prikazuje neke funkcije koje se najčešće koriste u izrazima. Kliknite na vezu za svaku funkciju za više informacija o sintaksi koju koristite sa tom funkcijom.
-
Funkcija Date koristi se za umetanje trenutnog sistemskog datuma u izraz. Najčešće se koristi sa funkcijom „Format“, kao i sa identifikatorima polja za polja koja sadrže podatke o datumu/vremenu.
=Date()
-
Funkcija DatePart koristi se za određivanje ili izdvajanje dela datuma – obično datuma koji se dobija iz identifikatora polja, ali ponekad i vrednosti datuma koja se dobija putem neke druge funkcije, na primer „Date“.
DatePart ( "yyyy", Date())
-
Funkcija DateDiff koristi se za određivanje razlike između dva datuma – obično između datuma koji se dobija iz identifikatora polja i datuma koji se dobija uz pomoć funkcije „Date“.
=DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10
-
Funkcija Format koristi se za primenu oblikovanja na identifikator, kao i za primenu oblikovanja na rezultate neke druge funkcije.
Format([Date],"ww")=Format(Now(),"ww")-1
-
Funkcija IIf koristi se za procenu izraza kao što su true ili false, a zatim vraća jednu određenu vrednost ako je izraz tačan, a drugu određenu vrednost ako je izraz netačan.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
-
Funkcija InStr koristi se za pretragu za položajem znaka ili niska unutar druge niske. Niska koja se pretražuje obično se dobija iz identifikatora polja.
InStr(1,[IPAddress],".")
-
Left, Mid i Right funkcije koriste se za izdvajanje znakova iz niske, počevši od krajnjeg levog znaka („Left“), određenog položaja u sredini („Mid“) ili znaka krajnje desno („Right“). One se često koriste zajedno sa funkcijom „InStr“. Niska iz koje te funkcije izdvajaju znakove obično se dobija iz identifikatora polja.
Left([ProductName], 1) Right([AssetCode], 2) Mid([Phone],2,3)
Liste funkcija potražite u članku Funkcije (raspoređene po kategorijama).
Operatori
Operator je reč ili simbol koji ukazuje na određeni aritmetički ili logički odnos između drugih elemenata izraza. Operatori mogu da budu:
-
Aritmetički, kao što je znak plus (+).
-
Poređenja, kao što je znak jednakosti (=).
-
Logički, kao što je Not.
-
Spajanja, kao što je &.
-
Posebni, kao što je Like.
Operatori se obično koriste za označavanje relaciju između dva identifikatora. Sledeće tabele opisuju operatore koje možete da koristite u Access izrazima.
Aritmetički
Koristite aritmetičke operatore za izračunavanje vrednosti iz dva broja ili više njih ili za menjanje znaka broja iz pozitivnog u negativan.
Operator |
Namena |
Primer |
---|---|---|
+ |
Saberite dva broja. |
[Međuvrednost] + [PorezNaPromet] |
- |
Pronađite razliku između dva broja ili ukažite na negativnu vrednost broja. |
[Cena]-[Popust] |
* |
Pomnožite dva broja. |
[Količina]*[Cena] |
/ |
Podelite prvi broj drugim brojem. |
[UkupnaVrednost]/[BrojStavki] |
\ |
Zaokružite oba broja na cele brojeve, podelite prvi broj drugim brojem, a zatim skratite rezultat na ceo broj. |
[Registrovano]\[Sobe] |
Mod |
Podelite prvi broj drugim, a zatim vratite samo ostatak. |
[Registrovano] Mod [Sobe] |
^ |
Podignite broj na stepen. |
Broj ^ stepen |
Poređenja
Operatore za poređenje koristite za poređenje vrednosti i vraćanje rezultata čija je vrednost „true“, „false“ ili „Null“ (nepoznata vrednost).
Operator |
Namena |
---|---|
< |
Određuje da li je prva vrednost manja od druge vrednosti. |
<= |
Određuje da li je prva vrednost manja od druge vrednosti ili joj je jednaka. |
> |
Određuje da li je prva vrednost veća od druge vrednosti. |
>= |
Određuje da li je prva vrednost veća od druge vrednosti ili joj je jednaka. |
= |
Određuje da li je prva vrednost jednaka drugoj vrednosti. |
<> |
Određuje da li prva vrednost nije jednaka drugoj vrednosti. |
U svim slučajevima, ako je prva ili druga vrednost Null, rezultat će takođe biti Null. Pošto Null predstavlja nepoznatu vrednost, rezultat poređenja sa vrednošću Null takođe će biti nepoznat.
Logički
Logičke operatore koristite za kombinovanje dve vrednosti i vraćanje rezultata „true“, „false“ ili „Null“. Logički operatori se takođe nazivaju i Bulovim operatorima.
Operator |
Upotreba |
Opis |
---|---|---|
And |
Izraz1 And Izraz2 |
Vrednost „True“ kad su Izraz1 i Izraz2 tačni. |
Or |
Izraz1 Or Izraz2 |
Vrednost „True“ ako je izraz Izraz1 ili Izraz2 tačan. |
Eqv |
Izraz1 Eqv Izraz2 |
Vrednost „True“ kad su i Izraz1 i Izraz2 tačni ili kad su i Izraz1 i Izraz2 netačni. |
Not |
Not Izraz |
Vrednost „True“ kad Izraz nije tačan. |
Xor |
Izraz1 Xor Izraz2 |
Vrednost „True“ kad je ili Izraz1 ili Izraz2 tačan, ali ne i oba. |
Spajanja
Koristite operatore spajanja za kombinovanje dve tekstualne vrednosti u jednu nisku.
Operator |
Upotreba |
Opis |
---|---|---|
& |
niska1 & niska2 |
Kombinuje dve niske da bi se formirala jedna niska. |
+ |
niska1 + niska2 |
Kombinuje dve niske da bi se formirala jedna niska i prenosi polja bez vrednosti. |
Posebni
Posebne operatore koristite kao što je opisano u sledećoj tabeli.
Operator |
Opis |
Za više informacija |
---|---|---|
Is Null or Is Not Null |
Određuje da li je vrednost „Null“ ili „Not Null“. |
|
Like "pattern" |
Pronalazi vrednosti niske pomoću džoker operatora ? i *. |
|
Between val1 And val2 |
Određuje da li se numerička vrednost ili vrednost datuma nalaze unutar opsega. |
|
In(string1,string2...) |
Određuje da li se vrednost niske nalazi unutar skupa vrednosti niske. |
Konstante
Konstanta je poznata vrednost koja se ne menja i koju možete da koristite u izrazu. Postoje četiri uobičajene konstante u programu Access:
-
True ukazuje na nešto što je logički tačno.
-
False ukazuje na nešto što je logički netačno.
-
Null ukazuje na nedostatak poznate vrednosti.
-
"" (empty string) ukazuje na vrednost za koju je poznato da je prazna.
Konstante mogu da se koriste kao argumenti za funkciju i mogu da se koriste u izrazu kao deo kriterijuma. Na primer, možete da koristite konstantu prazne niske ("") kao deo kriterijuma za kolonu u upitu da biste procenili vrednosti polja za tu kolonu tako što ćete uneti sledeće kao kriterijum: <>"". U ovom primeru, <> je operator, a "" je konstanta. Kad se koriste zajedno, ukazuju na to da identifikator na koji su primenjeni treba uporediti sa praznom niskom. Izraz koji se dobija ima vrednost „true“ kad je vrednost identifikatora bilo šta drugo osim prazne niske.
Budite pažljivi kad koristite konstantu Null. U većini slučajeva, korišćenje vrednosti Null zajedno sa operatorom za poređenje dovodi do greške. Ako želite da uporedite neku vrednost sa konstantom Null u izrazu, koristite operator Is Null ili Is Not Null.
Vrednosti
U izrazima možete koristiti doslovne vrednosti kao što je broj 1.254 ili niska „Unesite broj između 1 i 10“. Osim toga, možete koristiti numeričke vrednosti, na primer grupu cifara, uključujući znak i decimalnu tačku po potrebi. Kada nema znaka, Access pretpostavlja pozitivnu vrednost. Vrednost mora da sadrži znak minus (-) da bi bila negativna. Takođe, možete da koristite naučni sistem obeležavanja. Da biste koristili ovaj sistem, vrednost mora da sadrži slovo „E“ ili „e“ i znak za stepen (na primer, 1,0E-6).
Kada koristite tekstualne niske, postavite ih među navodnike da biste obezbedili da ih Access ispravno tumači. U nekim okolnostima, Access obezbeđuje navodnike za vas. Na primer, kada upisujete tekst u izraz pravila za validaciju ili tekst kriterijuma upita, Access automatski stavlja tekstualnu nisku između znakova navoda.
Na primer, ako otkucate tekst Paris, Access će u izrazu prikazati „Pariz“. Ako želite da izraz proizvede nisku koja je stvarno postavljena među navodnike, ugnežđenu nisku postavite među jednostruke (') navodnike ili među tri skupa dvostrukih (") navodnika. Na primer, sledeći izrazi su ekvivalentni:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
Da biste koristili vrednosti datuma/vremena, postavite ih među znakove za broj (#). Na primer, #3-7-17#, #7-Mar-17# i #Mar-7-2017# predstavljaju važeće vrednosti datuma/vremena. Kada Access naiđe na važeće vrednosti datuma/vremena postavljene među znakove #, on automatski tretira vrednost kao tip podataka „Datum/vreme“.
Ograničenje ugnežđivanja izraza u veb bazi podataka iznosi 65 nivoa
Izrazi koji su ugnežđeni na više od 65 nivoa dubine neće raditi u pregledaču, zbog toga ne bi trebalo koristiti takve izraze u Access veb bazi podataka. Nećete dobiti nikakve poruke o grešci – samo izraz neće raditi.
Upotreba operatora &, AND i OR može kreirati dodatne nivoe ugnežđivanja na serveru koji se ne odražavaju u Access klijentu. Na primer, izraz "a" & "b" & "c"nije ugnežđen u alatki „Izrada izraza“, ali u programu SharePoint postaje concatenate.Db("a", concatenate.Db("b", "c") ). To prevođenje stvara jedan nivo ugnežđivanja. Upotreba mnogo uzastopnih operatora &, AND ili OR u jednom izrazu može izazvati da prekoračite ograničenje ugnežđivanja servera koje iznosi 65 nivoa, u kojem trenutku će izraz prestati da radi u pregledaču.