Kada koristite Microsoft Access, često morate da radite sa vrednostima koje nisu 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
- Komponente izraza
- Objekti, kolekcije i svojstva
- Identifikatori
- Funkcije, operatori, konstante i vrednosti
- Ograničenje ugnežđivanja izraza u veb bazi podataka iznosi 65 nivoa
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.08je 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:
-
Truekada se uporedi sa brojem koji je veći od 0. -
Falsekada se uporedi sa brojem manjim 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 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 preuzme obrazac
[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 identifierPostoje izuzeci od ovog oblika, kao što je objašnjeno u odeljku Operatori.
Konstante Opšti oblik je:
Identifier comparison_operator constantVrednosti 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:
- Operator lupa (
!) - Operator tačke (
.) - Operator uglastih zagrada (
[ ])
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 kreirali izraz, potrebni su vam više od identifikatora – 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", "yyyy" sa vrednošću od i argumentom "datum", [Customers]![BirthDate]sa vrednošću od . 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 se koristi za određivanje ili izdvajanje dela datuma – obično datuma koji se dobija iz identifikatora polja, ali ponekad i vrednosti datuma koju vraća neka druga funkcija, kao što je Datum.
DatePart ( "yyyy", Date())Funkcija DateDiff se koristi za utvrđivanje razlike između dva datuma – obično između datuma koji se dobija iz identifikatora polja i datuma koji se dobija pomoću funkcije Date.
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10Funkcija Format koristi se za primenu oblikovanja na identifikator, kao i za primenu oblikovanja na rezultate neke druge funkcije.
Format([Date],"ww")=Format(Now(),"ww")-1Funkcija IIf se koristi za procenu izraza kao "tačno" ili "netačno", a zatim daje jednu vrednost ako se izraz proceni kao tačan, a drugu vrednost ako je izraz netačan.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")Funkcija InStr se koristi za traženje položaja znaka ili niske 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đenje, kao što je znak jednakosti (
=). -
Logičko, kao što je
Not. -
Spajanje, kao što je
&. -
Specijalno, 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.
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 Nullvrednost , rezultat će takođe biti Null. Pošto Null predstavlja nepoznatu vrednost, rezultat poređenja sa takođe Null je nepoznat.
Logičko
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" |
Podudara vrednosti niske pomoću džoker operatora ?i *. |
Operator Like |
Between val1 And val2 |
Određuje da li se numerička vrednost ili vrednost datuma nalaze unutar opsega. | Operator „Between...And“ |
In(string1,string2...) |
Određuje da li se vrednost niske nalazi unutar skupa vrednosti niske. | Operator In |
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:
-
Trueukazuje na nešto što je logički tačno. -
Falseukazuje na nešto što je logički netačno. -
Nullukazuje na nedostatak poznate vrednosti. -
"" (empty string)ukazuje na vrednost za koju se zna 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 za procenu vrednosti polja za tu kolonu tako što ćete uneti sledeće kao kriterijum: <>"". U ovom primeru je <> operator i predstavlja "" konstantu. 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 prilikom korišćenja konstante Null . U većini slučajeva, Null korišćenje zajedno sa operatorom za poređenje dovodi do greške. Ako želite da uporedite vrednost Null u izrazu, koristite Is Null operator ili Is Not Null .
Vrednosti
Možete da koristite literal vrednosti u izrazima, poput broja 1.254 ili niske „Unesite broj između 1 i 10”. Takođe možete da koristite numeričke vrednosti koje mogu da budu niz cifara, uključujući znak i decimalni zarez, po potrebi. Kada nema znaka, Access pretpostavlja pozitivnu vrednost. Da bi vrednost bila negativna, uključite znak minus (-). 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 prikazuje "Pariz" u izrazu. Ako želite da izraz proizvede nisku koja je zapravo pod znacima navoda, ugnežđenu nisku postavite među jednostruke (') navodnike ili unutar 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, stavite vrednosti 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, tako da ne bi trebalo da koristite takve izraze u Access veb bazi podataka. Nećete dobiti poruke o grešci – samo izraz neće raditi.
Korišćenje operatora &, i ANDoperatori mogu OR da kreiraju 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", već u sistemu SharePoint postaje concatenate.Db("a", concatenate.Db("b", "c") ). To prevođenje stvara jedan nivo ugnežđivanja. Korišćenje mnogo uzastopnih , ANDOR ili operatora u jednom izrazu može dovesti do toga da prekoračite ograničenje ugnežđivanja servera od 65, i tada izraz neće funkcionisati u pregledaču&.
Koristite alatku „Izrada izraza“Uvod u izrazeKreiranje izrazaPrimeri izraza