Vodič kroz sintaksu izraza

Primjenjuje se na
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Kada koristite Microsoft Access, često morate raditi s vrijednostima koje se ne nalaze izravno u vašim podacima. Možda ćete, primjerice, poželjeti izračunati porez za narudžbu ili pak ukupnu vrijednost same narudžbe. Te vrijednosti možete izračunati pomoću izraza. Da biste koristili izraze, morate ih napisati koristeći pravilnu sintaksu. Sintaksa je skup pravila prema kojima se riječi i simboli u izrazu pravilno kombiniraju. U početku je izraze u programu Access malo teže pročitati. Uz dobro razumijevanje sintakse izraza i malo prakse, to će postati mnogo lakše.

Sadržaj članka

Pregled izraza

Izraz je kombinacija nekih od sljedećih elemenata ili pak svih njih: ugrađenih ili korisnički definiranih funkcija, identifikatora, operatora, vrijednosti i konstanti. Svaki izraz izračunava jednu vrijednost.

Komponente izraza

Sljedeći izraz, primjerice, sadrži sljedeće česte komponente:

=Sum([Purchase Price])*0.08 
  • Sum() je ugrađena funkcija
  • [Purchase Price] identifikator je
  • * je matematički operator
  • 0.08 konstanta je

Ovaj se izraz može koristiti u tekstnom okviru u podnožju obrasca ili podnožju izvješća radi izračuna poreza za skupinu stavki.

Izrazi mogu biti puno složeniji ili jednostavniji od tog primjera. Sljedeći Booleov izraz, primjerice, sastoji se samo od operatora i konstante:

>0

Taj izraz vraća sljedeći rezultat:

  • True kada se uspoređuje s brojem većim od 0.
  • False kada se uspoređuje s brojem manjim od 0.

Taj izraz možete koristiti u svojstvu ValidationRule kontrole ili polja tablice da biste bili sigurni da se unose samo pozitivne vrijednosti. Izrazi se koriste na mnogim mjestima radi izračuna, upravljanja znakovima ili testiranja podataka. Tablice, upiti, obrasci, izvješća i makronaredbe sadrže svojstva koja prihvaćaju izraze. Izraze možete, primjerice, koristiti u svojstvima ControlSource i DefaultValue za kontrolu. Osim toga, možete ih koristiti i u svojstvu ValidationRule za polje tablice.

Vrh stranice

Komponente izraza

Da biste sastavili izraz, identifikatore kombinirate pomoću funkcija, operatora, konstanti i vrijednosti. Da bi izraz bio valjan, mora sadržavati barem jednu funkciju ili barem jedan identifikator, a može sadržavati i konstante ili operatore. Izraz možete koristiti i kao dio drugog izraza, obično kao argument funkcije. Taj se postupak zove ugniježđivanje izraza.

  • Identifikatori Općeniti je oblik sljedeći:

    [Collection name]![Object name].[Property name]
    

    Da bi identifikator bio jedinstven u kontekstu izraza, potrebno je odrediti samo dovoljan broj njegovih dijelova. Identifikatori često imaju oblik [Object name].

  • Funkcije Općeniti je oblik sljedeći:

    Function(argument, argument)
    

    Jedan od argumenata obično je identifikator ili izraz. Za neke funkcije nisu potrebni argumenti. Prije no što upotrijebite određenu funkciju, pregledajte njezinu sintaksu. Dodatne informacije potražite u članku Funkcije (po kategorijama).

  • Operatori Općeniti je oblik sljedeći:

    Identifier operator identifier
    

    Operator ne mora uvijek imati takav oblik, kao što je navedeno u odjeljku Operatori.

  • Konstante Općeniti je oblik sljedeći:

    Identifier comparison_operator constant
    
  • Vrijednosti Vrijednosti se mogu pojaviti na mnogim mjestima u izrazu.

Vrh stranice

Objekti, zbirke i svojstava

Sve tablice, upiti, obrasci, izvješća i polja u bazi podataka programa Access pojedinačno se nazivaju objekti. Svaki objekt ima svoj naziv. Nekim je objektima naziv već dodijeljen, primjerice tablici Kontakti u bazi podataka stvorenoj pomoću predloška Kontakti u programu Microsoft Office Access. Kada stvorite novi objekt, dodijelite mu naziv.

Skup svih članova određene vrste objekta naziva se zbirka. Zbirka je, primjerice, skup svih tablica u bazi podataka. Neki objekti koji su članovi zbirke u vašoj bazi podataka mogu i sami biti zbirke koje sadrže druge objekte. Na primjer, objekt tablice zbirka je koja sadrži objekte polja.

Objekti imaju svojstva koja opisuju karakteristike objekta i omogućuju njihovu promjenu. Objekt upita, primjerice, ima svojstvo Zadani prikaz koje opisuje izgled upita prilikom pokretanja i omogućuje vam promjenu tog izgleda.

Na sljedećem su dijagramu prikazani odnosi između zbirki, objekata i svojstava:

Odnosi zbirki prema objektima i svojstvima 3 Svojstvo


2 Objekt


1 Zbirka

Vrh stranice

Identifikatori

Kada u izrazu koristite objekt, zbirku ili svojstvo, referencu na taj element stvarate pomoću identifikatora. Identifikator sadrži naziv samog elementa, kao i naziv elementa kojem pripada. Identifikator za polje, primjerice, sadrži naziv tog polja i naziv tablice kojoj ono pripada. Primjer takvog identifikatora glasi:

[Customers]![BirthDate]

U nekim je slučajevima identifikator sam naziv elementa. To vrijedi kada je naziv elementa jedinstven u kontekstu izraza koji stvarate. Ostatak identifikatora određuje se iz konteksta. Ako, primjerice, dizajnirate upit koji koristi samo jednu tablicu, nazivi polja funkcionirat će kao identifikatori jer nazivi polja u tablici moraju u toj tablici biti jedinstveni. Budući da koristite samo jednu tablicu, njezin se naziv može odrediti iz svakog identifikatora koji u upitu koristite radi referiranja na polje.

U drugim slučajevima morate izričito navesti dijelove identifikatora da bi referenca funkcionirala. To vrijedi kada identifikator nije jedinstven u kontekstu izraza. Kada postoji dvosmislenost, morate izričito označiti dovoljno dijelova identifikatora da bi on bio jedinstven u kontekstu. Na primjer, pretpostavimo da dizajnirate upit koji koristi tablicu pod nazivom Proizvodi i tablicu pod nazivom Narudžbe, a obje tablice imaju polje pod nazivom IDProizvoda. U tom slučaju identifikator koji u upitu koristite radi referiranja na polje IDProizvoda mora uz naziv polja sadržavati i naziv tablice. Na primjer:

[Products]![ProductID]

Operatori identifikatora U identifikatoru možete koristiti sljedeća tri operatora:

  • Operator uskličnika (!)
  • Operator točke (.)
  • Operator uglatih zagrada ([ ])

Te operatore koristite tako da svaki dio identifikatora stavite u uglate zagrade, a zatim ih povežete pomoću operatora uskličnika ili točke. Identifikator polja s nazivom LastName u tablici Employees, primjerice, može se izraziti kao [Employees]![Last Name]. Operator uskličnika programu Access govori da slijedi objekt koji pripada zbirci koja je navedena prije operatora uskličnika. U ovom je slučaju [LastName] objekt polja koji pripada zbirci [Employees] koja je pak objekt tablice.

Unos uglatih zagrada oko identifikatora ili djelomičnog identifikatora nije uvijek nužan. Ako u identifikatoru nema razmaka ni drugih posebnih znakova, Access prilikom čitanja izraza automatski dodaje uglate zagrade. Međutim, preporučujemo da sami unosite zagrade – time ćete izbjeći pogreške, a zagrade će vam koristiti i kao vizualni podsjetnik da je određeni dio izraza identifikator.

Vrh stranice

Funkcije, operatori, konstante i vrijednosti

Da biste stvorili izraz, nisu dovoljni samo identifikatori – morate izvršiti i neku radnju. Da biste izvodili radnje u izrazu, koristite funkcije, operatore i konstante.

Funkcije

Funkcija je procedura koju možete upotrijebiti u izrazu. Neke funkcije, primjerice Date, ne zahtijevaju ulazne podatke da bi funkcionirale. Većina funkcija ipak zahtijeva ulazne podatke, odnosno argumente.

U primjeru s početka ovog članka funkcija DatePart koristi dva argumenta: argument intervala, koji sadrži vrijednost "yyyy" i argument datuma, koji sadrži vrijednost [Customers]![BirthDate]. Funkciji DatePart potrebna su najmanje dva argumenta (intervala i datuma), no može prihvatiti i do četiri argumenta.

Na sljedećem su popisu navedene uobičajene funkcije koje se koriste u izrazima. Kliknite vezu za pojedinu funkciju da biste saznali sintaksu koju morate za nju koristiti.

  • Funkcija Date koristi se za umetanje trenutnog datuma sustava u izraz. Obično se koristi u kombinaciji s funkcijom Format ili pak s identifikatorima polja za ona polja koja sadrže podatke o datumu/vremenu.

    =Date()
    
  • Funkcija DatePart koristi se za utvrđivanje ili izdvajanje određenog dijela datuma, obično datuma dobivenog iz identifikatora polja, ali vrijednosti datuma ponekad i druge funkcije, primjerice funkcije Date.

    DatePart ( "yyyy", Date())
    
  • Funkcija DateDiff koristi se za utvrđivanje razlike između dva datuma, obično između datuma dobivenog iz identifikatora polja i datuma dobivenog pomoću funkcije Date.

    =DateDiff("d", Now(), [Orders].[ReceiveBefore])-10 
    
  • Funkcija Format koristi se za primjenu oblikovanja na identifikator i rezultate neke druge funkcije.

    Format([Date],"ww")=Format(Now(),"ww")-1 
    
  • Funkcija IIf koristi se da bi se odredilo je li izraz istinit (true) ili neistinit (false) te da bi se u slučaju da je izraz istinit vratila jedna vrijednost, a u slučaju da je neistinit druga vrijednost.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
    
  • Funkcija InStr koristi se za traženje položaja znaka ili niza unutar drugog niza. Niz koji se traži obično se dobiva iz identifikatora polja.

    InStr(1,[IPAddress],".")
    
  • Funkcije Left, Mid i Right koriste se za izdvajanje znakova iz polja, počevši od znaka na krajnjem lijevom položaju (Left), znaka na određenom položaju u sredini (Mid) ili znaka na krajnjem desnom položaju (Right). Te se funkcije obično koriste zajedno s funkcijom InStr. Niz iz kojeg funkcije izdvajaju znakove obično se dobiva iz identifikatora polja.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    
    

Popis funkcija potražite u članku Funkcije (poredane po kategoriji).

Operatori

Operator je riječ ili simbol koji označava specifičan aritmetički ili logički odnos između ostalih elemenata u izrazu. Operatori mogu biti:

  • Aritmetički, primjerice znak plus (+).
  • Usporedba, primjerice znak jednakosti (=).
  • Logička, kao što je Not.
  • Povezivanje, kao što je &.
  • Posebno, kao što je Like.

Operatori se obično koriste za prikaz odnosa između dvaju identifikatora. U sljedećim su tablicama opisani operatori koje možete koristiti u izrazima programa Access.

Aritmetički operatori

Aritmetičke operatore koristite za izračun vrijednosti pomoću dvaju ili više brojeva ili da biste promijenili predznak broja iz pozitivnog u negativni.

Operator Svrha Primjer
+ Zbrajanje dvaju brojeva. [Podzbroj]+[ProdPorez]
- Traženje razlike između dvaju brojeva ili označavanje negativne vrijednosti broja. [Cijena]-[Popust]
* Množenje dvaju brojeva. [Količina]*[Cijena]
/ Dijeljenje prvog broja drugim. [UkupniZbroj]/[BrojArtikala]
\ Zaokruživanje obaju brojeva na cijele brojeve, dijeljenje prvog broja drugim, a zatim skraćivanje rezultata na cijeli broj. [Prijavljeni]\[Sobe]
Mod Dijeljenje prvog broja drugim, a zatim prikaz samo ostatka dijeljenja. [Prijavljeni] Mod [Sobe]
^ Potenciranje broja na eksponent. Broj ^ Eksponent

Operatori usporedbe

Operatore usporedbe koristite da biste usporedili vrijednosti i vratili rezultat koji je True, False ili Null (nepoznata vrijednost).

Operator Svrha
< Utvrđuje je li prva vrijednost manja od druge vrijednosti.
<= Utvrđuje je li prva vrijednost manja od druge vrijednosti ili joj je pak jednaka.
> Utvrđuje je li prva vrijednost veća od druge vrijednosti.
>= Utvrđuje je li prva vrijednost veća od druge vrijednosti ili joj je pak jednaka.
= Utvrđuje je li prva vrijednost jednaka drugoj vrijednosti.
<> Utvrđuje je li prva vrijednost različita od druge vrijednosti.

U svakom slučaju, ako je prva ili druga vrijednost , Nullrezultat je također Null. Budući da Null predstavlja nepoznatu vrijednost, nepoznat je i rezultat bilo koje usporedbe s kojom se nalazi Null .

Logičko

Logičke operatore koristite za kombiniranje dvaju vrijednosti i vraćanje rezultata True, False ili Null. Logički operatori ponekad se nazivaju i Booleovi operatori.

Operator Namjena Opis
And Izraz1 And Izraz2 True kada su Izraz1 i Izraz2 istiniti.
Or Izraz1 Or Izraz2 True ako je Izraz1 ili Izraz2 istinit.
Eqv Izraz1 Eqv Izraz2 True kada su Izraz1 i Izraz2 istiniti ili kada su Izraz1 i Izraz2 neistiniti.
Not Not Izraz True ako Izraz nije istinit.
Xor Izraz1 Xor Izraz2 True ako je Izraz1 ili Izraz2 istinit, ali ne ako su oba istinita.

Operatori povezivanja

Operatori povezivanja koriste se za objedinjavanje dvije tekstne vrijednosti u jedan niz.

Operator Namjena Opis
& niz1 & niz2 Spaja dva niza u jedan.
+ niz1 + niz2 Spaja dva niza u jedan uz prijenos null vrijednosti.

Posebni operatori

Posebne operatore koristite u skladu s opisima u sljedećoj tablici.

Operator Opis Dodatne informacije
Is Null or Is Not Null Određuje je li vrijednost Null ili nije Null.
Like "pattern" Pronalazi vrijednosti niza pomoću zamjenskih operatora ?i *. Operator Like
Between val1 And val2 Utvrđuje je li brojčana vrijednost ili vrijednost datuma unutar raspona. Operator Between...And
In(string1,string2...) Utvrđuje nalazi se vrijednost niza unutar skupa vrijednosti niza. Operator In

Konstante

Konstanta je poznata vrijednost koji se ne mijenja i koju možete koristiti u izrazu. U programu Access najčešće se koriste četiri konstante:

  • True Označava nešto što je logički istinito.
  • False Označava nešto što je logički neistinito.
  • Null Označava nedostatak poznate vrijednosti.
  • "" (empty string) Označava vrijednost za koju je poznato da je prazna.

Konstante se mogu koristiti kao argumenti funkcije, a mogu se koristiti i u izrazu kao dio kriterija. Konstantu praznog niza ("") možete, primjerice, koristiti kao dio kriterija za stupac u upitu radi procjene vrijednosti polja za taj stupac tako da kao kriterij unesete sljedeće: <>"". U ovom je primjeru <> to operator i "" konstanta. Kada se koriste zajedno, oni označavaju da je identifikator na koji su primijenjeni treba usporediti s praznim nizom. Izraz koji nastaje istinit je kada vrijednost identifikatora nije prazan niz.

Budite oprezni prilikom korištenja konstante Null . Korištenje Null zajedno s operatorom usporedbe u većini će slučajeva rezultirati pogreškom. Ako želite usporediti vrijednost u izrazu Null , upotrijebite Is Null operator ili Is Not Null .

Vrijednosti

U svojim izrazima možete koristiti doslovne vrijednosti, kao što je broj 1254 ili niz "unesite broj između 1 i 10". Osim toga, možete koristiti i numeričke vrijednosti, koje mogu biti niz znamenki, uključujući znak i decimalni zarez, ako je to potrebno. Ako nema predznaka, Access pretpostavlja da je vrijednost pozitivna. Da biste vrijednost učinili negativnom, uvrstite negativni predznak (-). Možete koristiti i znanstvenu notaciju. Da biste to učinili, uvrstite "E" ili "e" i znak eksponenta (primjerice 1,0E-6).

Kada koristite tekstne nizove, stavite ih u navodnike da bi ih Access ispravno protumačio. U nekim slučajevima Access sam stavlja navodnike. Kada, primjerice, upišete tekst u izrazu za pravilo provjere valjanosti ili kriterij upita, Access te tekstne nizove automatski stavlja u navodnike.

Ako, primjerice, upišete tekst Paris, Access u izrazu prikazuje "Pariz". Ako želite izrazom stvoriti niz u navodnicima, niz stavite u jednostruke (') navodnike ili u tri para dvostrukih (") navodnika. Sljedeći su primjeri izraza ekvivalentni:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Da biste koristili vrijednosti datuma/vremena, vrijednost stavite između znakova ljestvi (#). Primjeri #7-3-17#, #7-ožu-17# i #ožu-7-2017# svi predstavljaju valjane vrijednosti datuma/vremena. Kada Access naiđe na valjanu vrijednost datuma/vremena omeđenu znakovima #, on automatski tretira tu vrijednost kao da pripada vrsti podataka datum/vrijeme.

Vrh stranice

Ograničenje od 65 razina ugnježđivanja u aplikacijama ili web-bazama podataka

Izrazi ugnježđeni više od 65 razina neće funkcionirati u pregledniku, pa takve izraze ne biste trebali koristiti u web-bazi podataka programa Access. Nećete vidjeti poruku o pogrešci – izraz jednostavno neće funkcionirati.

Korištenje &operatora , ANDi može stvoriti dodatne razine ugnježđivanja na poslužitelju OR koje se ne odražavaju u klijentu programa Access. Izraz "a" & "b" & "c" , primjerice, nije ugniježđen u sastavljaču izraza, ali u sustavu SharePoint postaje concatenate.Db("a", concatenate.Db("b", "c") ). Tim se prijevodom stvara jedna razina ugnježđivanja. Korištenje većeg broja uzastopnih &operatora , AND, ili OR u jednom izrazu može uzrokovati prekoračenje poslužiteljskog ograničenja od 65 razina ugnježđivanja, pa izraz tada više neće funkcionirati u pregledniku.

Vrh stranice

Korištenje sastavljača izrazaUvod u izrazeSastavljanje izrazaPrimjeri izraza