U ovom se članku navode brojni primjeri izraza u Access. Izraz je kombinacija matematičkih i logičkih operatora, konstanti, funkcija, polja tablice, kontrola te svojstava koja kao rezultat daje jednu vrijednost. Izraze u programu Access za izračun vrijednosti, provjeru valjanosti podataka i postavljanje zadane vrijednosti.
Sadržaj članka
Obrasci i izvješća
Tablice u ovom odjeljku sadrže primjere izraza koji izračunavaju vrijednost u kontroli koja se nalazi u obrascu ili izvješću. Da biste stvorili izračunatu kontrolu, izraz umjesto u polje tablice ili upit unesite u svojstvo kontrole ControlSource.
Napomena Izraze u obrascu ili izvješću možete koristiti i kada istaknete podatke uvjetnim oblikovanjem.
Operacije s tekstom
Izrazi u tablici u nastavku koriste operatore & i + (plus) radi objedinjavanja nizova teksta, ugrađene funkcije radi upravljanja nizom teksta i druge načine upravljanja tekstom radi stvaranja kontrole izračuna.
Izraz |
Rezultat |
---|---|
="N/A" |
Prikazuje Nije dostupno. |
=[FirstName] & " " & [LastName] |
Prikazuje vrijednosti koje se nalaze u poljima tablice Ime i Prezime. U ovom se primjeru pomoću operatora & objedinjuju polje Ime, razmak (unutar navodnika) i polje Prezime. |
=Left([ProductName], 1) |
Pomoću funkcije Left prikazuje prvi znak vrijednosti polja ili kontrole ProductName. |
=Right([AssetCode], 2) |
Pomoću funkcije Right prikazuje zadnja dva znaka vrijednosti u polju ili kontroli AssetCode. |
=Trim([Address]) |
Pomoću funkcije Trim prikazuje vrijednost kontrole Address i pritom uklanja razmake ispred i iza vrijednosti. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Pomoću funkcije IIf prikazuje vrijednosti kontrola Grad i PoštanskiBroj ako kontrola Regija ima vrijednost null. U suprotnom prikazuje vrijednosti kontrola Grad, Regija i PoštanskBroj razdvojene razmakom. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
Pomoću operatora + i prijenosa vrijednosti null prikazuje vrijednosti kontrola Grad i PoštanskiBroj ako polje ili kontrola Regija ima vrijednost null. U suprotnom prikazuje vrijednosti polja ili kontrola Grad, Regija i PoštanskiBroj razdvojene razmakom. Prijenos vrijednosti null znači da će cijeli izraz imati vrijednost null ako neka njegova komponenta ima vrijednost null. Operator + podržava prijenos vrijednosti null, a operator & ga ne podržava. |
Zaglavlja i podnožja
Svojstva Stranica i Stranice omogućuju prikaz i ispis brojeva stranica u obrascima i izvješćima. Svojstva Stranica i Stranice dostupna su samo tijekom ispisa i pretpregleda ispisa, pa se ne prikazuju na popisu svojstava za obrazac ili izvješće. Ta se svojstva obično koriste tako da se u zaglavlje ili podnožje obrasca ili izvješća doda tekstni okvir, a zatim upotrijebi odgovarajući izraz, npr. neki od izraza navedenih u tablici u nastavku.
Dodatne informacije o korištenju zaglavlja i podnožja u obrascima i izvješćima potražite u članku Umetanje brojeva stranica u obrazac ili izvješće.
Izraz |
Rezultat |
---|---|
=[Page] |
1 |
="Page " & [Page] |
Okno zadatka Provjera pristupačnosti s rezultatima provjere pristupačnosti |
="Page " & [Page] & " of " & [Pages] |
Stranica 1 od 3 |
=[Page] & " of " & [Pages] & " Pages" |
1 od 3 str. |
=[Page] & "/" & [Pages] & " Pages" |
1/3 str. |
=[Country/region] & " - " & [Page] |
Hrvatska – 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
Ispisano: 12/31/17 |
Aritmetičke operacije
Pomoću izraza možete zbrajati, oduzimati, množiti i dijeliti vrijednosti u dva ili više polja ili kontrola. Pomoću izraza možete i izvoditi aritmetičke operacije s datumima. Recimo da imate datumsko-vremensko polje tablice pod nazivom TraženiDatum. Izraz =[RequiredDate] - 2 u polju ili u kontroli povezanoj s njim vraća vrijednost datuma i vremena koja za dva dana prethodi trenutnim vrijednostima u polju TraženiDatum.
Izraz |
Rezultat |
---|---|
=[Subtotal]+[Freight] |
Zbroj vrijednosti polja ili kontrola Podzbroj i Vozarina. |
=[RequiredDate]-[ShippedDate] |
Interval između vrijednosti datuma polja ili kontrola TraženiDatum i DatumOtpreme. |
=[Price]*1.06 |
Umnožak vrijednosti polja ili kontrole Cijena i broja 1,06 (povećava vrijednost polja Cijena za 6 %). |
=[Quantity]*[Price] |
Umnožak vrijednosti polja ili kontrola Količina i Cijena. |
=[EmployeeTotal]/[CountryRegionTotal] |
Kvocijent vrijednosti polja ili kontrola EmployeeTotal i CountryRegionTotal. |
Napomena Kada u izrazu koristite aritmetičke operatore (+, -, * i /) i jedna od kontrola u izrazu ima vrijednost null, rezultat cijelog izraza bit će vrijednost null – to je tzv. prijenos vrijednosti null. Ako bi neki zapis u nekoj kontroli u izrazu mogao imati vrijednost null, prijenos vrijednosti null možete spriječiti tako da vrijednost null pretvorite u nulu pomoću funkcije Nz – npr. =Nz([Subtotal])+Nz([Freight]).
Vrijednosti u drugim kontrolama
Katkad vam je potrebna vrijednost koja se nalazi negdje drugdje, npr. u polju ili kontroli u nekom drugom obrascu ili izvješću. Pomoću izraza možete vratiti vrijednost iz nekog drugog polja ili kontrole.
U tablici u nastavku navedeni su primjeri izraza koje možete koristiti u kontrolama izračuna u obrascima.
Izraz |
Rezultat |
---|---|
=Forms![Orders]![OrderID] |
Vrijednost kontrole IDnarudžbe u obrascu Narudžbe. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
Vrijednost kontrole PodzbrojNarudžbi u podobrascu Podobrazac narudžbi u obrascu Narudžbe. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
Vrijednost trećeg stupca u okviru s popisom s više stupaca IDproizvoda u podobrascu Podobrazac narudžbi u obrascu Narudžbe. (Imajte na umu da se 0 odnosi na prvi stupac, 1 na drugi itd.) |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
Umnožak vrijednosti kontrole Cijena u podobrascu Podobrazac narudžbi u obrascu Narudžbe i broja 1,06 (vrijednost kontrole Cijena povećava za 6 %). |
=Parent![OrderID] |
Vrijednost kontrole IDnarudžbe u glavnom ili nadređenom obrascu trenutnog podobrasca. |
Izrazi u tablici u nastavku pokazuju neke od načina korištenja kontrola izračuna u izvješćima. Izrazi se pozivaju na svojstvo Report.
Izraz |
Rezultat |
---|---|
=Report![Invoice]![OrderID] |
Vrijednost kontrole "IDnarudžbe" u izvješću "Faktura". |
=Report![Summary]![Summary Subreport]![SalesTotal] |
Vrijednost kontrole UkupnaProdaja u podizvješću Podizvješće sažetka u izvješću Sažetak. |
=Parent![OrderID] |
Vrijednost kontrole IDnarudžbe u glavnom ili nadređenom obrascu trenutnog podizvješća. |
Vrijednosti funkcija Count, Sum i Average
Vrsta funkcije pod nazivom agregacijska funkcija omogućuje izračunavanje vrijednosti za jedno ili više polja ili kontrola. Možete, primjerice, izračunati ukupni zbroj grupe za podnožje grupe u izvješću ili podzbroj narudžbe za stavke u obrascu. Možete i utvrditi broj stavki u jednom ili više polja ili pak izračunati prosječnu vrijednost.
Izrazi u tablici u nastavku pokazuju neke od načina korištenja funkcija kao što su Avg, Count i Sum.
Izraz |
Opis |
---|---|
=Avg([Freight]) |
Pomoću funkcije Avg prikazuje prosjek vrijednosti polja tablice ili kontrole "Vozarina". |
=Count([OrderID]) |
Pomoću funkcije Count prikazuje broj zapisa u kontroli IDnarudžbe. |
=Sum([Sales]) |
Pomoću funkcije Sum prikazuje zbroj vrijednosti kontrole Prodaja. |
=Sum([Quantity]*[Price]) |
Pomoću funkcije Sum prikazuje zbroj umnoška vrijednosti kontrola Količina i Cijena. |
=[Sales]/Sum([Sales])*100 |
Prikazuje postotak prodaje utvrđen dijeljenjem vrijednosti kontrole Prodaja sa zbrojem svih vrijednosti kontrole Prodaja. Ako svojstvo kontrole Format postavite na postotak, u izraz nemojte uvrstiti *100. |
Dodatne informacije o korištenju agregacijskih funkcija i ukupnih vrijednosti u polju i stupcima potražite u člancima Zbrajanje podataka pomoću upita, Brojanje podataka pomoću upita, Prikaz ukupnih zbrojeva stupaca u podatkovnoj tablici pomoću retka ukupnog zbroja i Prikaz ukupnih zbrojeva stupaca u podatkovnoj tablici.
SQL agregacijske funkcije
SQL ili domenske agregacijske funkcije koristite kada morate selektivno zbrojiti ili prebrojiti vrijednosti. "Domena" se sastoji od jednog ili više polja u jednoj ili više tablica ili pak od jedne ili više kontrola u jednom ili više obrazaca ili izvješća. Vrijednosti u polju tablice, primjerice, možete usporediti s vrijednostima u kontroli u obrascu.
Izraz |
Opis |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
Pomoću funkcije DLookup vraća vrijednost polja ImeKontakta u tablici Dobavljači kada se vrijednost polja IDdobavljača u tablici podudara s vrijednošću kontrole IDdobavljača u obrascu Dobavljači. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
Pomoću funkcije DLookup vraća vrijednost polja ImeKontakta u tablici Dobavljači kada se vrijednost polja IDdobavljača podudara s vrijednošću kontrole IDdobavljača u obrascu Novi dobavljači. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
Pomoću funkcije DSum vraća ukupni zbroj vrijednosti u polju IznosNarudžbe u tablici Narudžbe kada je IDkupca RATTC. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
Pomoću funkcije DCount vraća broj vrijednosti Da u polju Otpisano (polje Da/ne) u tablici Imovina. |
Operacije s datumom
Praćenje datuma i vremena osnovna je aktivnost baze podataka. Možete, primjerice, izračunati koliko je dana prošlo od datuma ispostave fakture radi ažuriranja popisa potraživanja. Datume i vremena možete oblikovati na brojne načine navedene u tablici u nastavku.
Izraz |
Opis |
---|---|
=Date() |
Pomoću funkcije Date prikazuje trenutni datum u obliku mm-dd-yy, pri čemu je mm mjesec (od 1 do 12), dd dan (od 1 do 31), a yy zadnje dvije znamenke godine (od 1980 do 2099). |
=Format(Now(), "ww") |
Pomoću funkcije Format prikazuje broj tjedna u godini za trenutni datum, pri čemu ww predstavlja tjedne od 1 do 53. |
=DatePart("yyyy", [OrderDate]) |
Pomoću funkcije DatePart prikazuje četveroznamenkastu godinu vrijednosti kontrole DatumNarudžbe. |
=DateAdd("y", -10, [PromisedDate]) |
Pomoću funkcije DateAdd prikazuje datum koji za 10 dana prethodi vrijednosti kontrole ObećaniDatum. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
Pomoću funkcije DateDiff prikazuje razliku u danima između vrijednosti kontrola DatumNarudžbe i DatumOtpreme. |
=[InvoiceDate] + 30 |
Pomoću aritmetičkih operacija s datumima izračunava datum koji nastupa 30 dana nakon datuma u polju ili kontroli DatumFakture. |
Uvjeti sa samo dvije vrijednosti
Ogledni izrazi u tablici u nastavku pomoću funkcije IIf vraćaju jednu od dviju mogućih vrijednosti. Funkciji IIf prosljeđuju se tri argumenta: prvi je argument izraz koji mora vratiti vrijednost True ili False. Drugi je argument vrijednost koja će se vratiti ako izraz bude imao vrijednost True, a treći je argument vrijednost koja će se vratiti ako izraz bude imao vrijednost False.
Izraz |
Opis |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
Pomoću funkcije IIf (Immediate If) prikazuje poruku "Narudžba je potvrđena" ako je vrijednost kontrole Potvrđeno Yes. U suprotnom prikazuje poruku "Order Not Confirmed.". |
=IIf(IsNull([Country/region]), " ", [Country]) |
Pomoću funkcija IIf i IsNull prikazuje prazan niz ako kontrola Država/regija ima vrijednost null. U suprotnom prikazuje vrijednost kontrole Država/regija. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Pomoću funkcija IIf i IsNull prikazuje vrijednosti kontrola Grad i PoštanskiBroj ako kontrola Regija ima vrijednost null. U suprotnom prikazuje vrijednosti polja ili kontrola Grad, Regija i PoštanskiBroj. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Pomoću funkcija IIf i IsNull prikazuje poruku "Provjerite ne nedostaje li datum" ako je rezultat oduzimanja vrijednosti DatumOtpreme od vrijednosti TraženiDatum null. U suprotnom prikazuje interval između vrijednosti datuma kontrola TraženiDatum i DatumOtpreme. |
Upiti i filtri
Ovaj odjeljak sadrži primjere izraza pomoću kojih možete stvoriti izračunato polje u upitu i dodati kriterij u upit. Izračunato je polje stupac u upitu koji proizlazi iz izraza. Možete, primjerice, izračunati vrijednost, objediniti tekstne vrijednosti kao što su imena i prezimena ili oblikovati dio datuma.
Pomoću kriterija u upitu možete ograničiti zapise s kojima radite. Pomoću operatora Between, primjerice, možete odrediti datum početka i datum završetka te ograničiti rezultate upita na narudžbe koje su otpremljene između tih datuma.
Sljedeći odjeljci sadrže primjere izraza koji se koriste u upitima.
Operacije s tekstom
Izrazi u tablici u nastavku koriste operatore & i + za objedinjavanje nizova teksta, ugrađene funkcije za upravljanje nizom teksta i druge načine upravljanja tekstom za stvaranje izračunatog polja.
Izraz |
Opis |
---|---|
FullName: [FirstName] & " " & [LastName] |
Stvara polje ImeIprezime koje prikazuje vrijednosti u poljima Ime i Prezime razdvojene razmakom. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
Stvara polje Adresa2 koje prikazuje vrijednosti u poljima Grad, Regija i PoštanskiBroj razdvojene razmakom. |
ProductInitial: Left([ProductName], 1) |
Stvara polje PrvoSlovoProizvoda, a zatim pomoću funkcije Left u polju PrvoSlovoProizvoda prikazuje prvi znak vrijednosti u polju NazivProizvoda. |
TypeCode: Right([AssetCode], 2) |
Stvara polje VrstaKoda, a zatim pomoću funkcije Right prikazuje posljednja dva znaka vrijednosti u polju ŠifraImovine. |
AreaCode: Mid([Phone],2,3) |
Stvara polje PozivniBroj, a zatim pomoću funkcije Mid prikazuje tri znaka počevši od drugog znaka vrijednosti u polju Telefon. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
Izračunatom polju daje naziv ProširenaCijena i koristi funkciju CCur za izračun ukupnih zbrojeva za stavke u retku s primijenjenim popustom. |
Aritmetičke operacije
Pomoću izraza možete zbrajati, oduzimati, množiti i dijeliti vrijednosti u dva ili više polja ili kontrola. Možete i izvoditi aritmetičke operacije s datumima. Recimo da imate datumsko-vremensko polje pod nazivom TraženiDatum. Izraz =[RequiredDate] - 2 vraća vrijednost datuma i vremena koja za dva dana prethodi vrijednosti u polju TraženiDatum.
Izraz |
Opis |
---|---|
PrimeFreight: [Freight] * 1.1 |
Stvara polje UkupnaVozarina, a zatim u njemu prikazuje trošak vozarine uvećan za 10 %. |
OrderAmount: [Quantity] * [UnitPrice] |
Stvara polje IznosNarudžbe, a zatim prikazuje umnožak vrijednosti u poljima Količina i JediničnaCijena. |
LeadTime: [RequiredDate] - [ShippedDate] |
Stvara polje Trajanje, a zatim prikazuje razliku između vrijednosti u poljima TraženiDatum i DatumOtpreme. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
Stvara polje UkupnoNaSkladištu i prikazuje zbroj vrijednosti u poljima JedinicaNaSkladištu NaručenoJedinica. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Stvara polje PostotakVozarine, a zatim prikazuje postotak troškova vozarine u svakom podzbroju. Izraz pomoću funkcije Sum izračunava ukupne zbrojeve vrijednosti u polju Vozarina, a zatim te ukupne zbrojeve dijeli zbrojem vrijednosti u polju Podzbroj. Da biste koristili taj izraz, upit odabiranja morate pretvoriti u upit o ukupnim zbrojevima jer morate koristiti redak Ukupni zbroj u rešetki dizajna i ćeliju Ukupni zbroj za to polje postaviti na Izraz. Dodatne informacije o stvaranju upita o ukupnim zbrojevima potražite u članku Zbrajanje podataka pomoću upita. Ako svojstvo polja Format postavite na postotak, nemojte uvrstiti *100. |
Dodatne informacije o korištenju agregacijskih funkcija i ukupnih vrijednosti u polju i stupcima potražite u člancima Zbrajanje podataka pomoću upita, Brojanje podataka pomoću upita, Prikaz ukupnih zbrojeva stupaca u podatkovnoj tablici pomoću retka ukupnog zbroja i Prikaz ukupnih zbrojeva stupaca u podatkovnoj tablici.
Operacije s datumom
Gotovo sve baze podataka pohranjuju i prate datume i vrijeme. S datumima i vremenom u programu Access radite tako da datumsko-vremenska polja u tablicama postavite na vrstu podataka Datum/vrijeme. Access može izvoditi aritmetičke operacije s datumima. Možete, primjerice, izračunati koliko je dana prošlo od datuma ispostave fakture radi ažuriranja popisa potraživanja.
Izraz |
Opis |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
Stvara polje Kašnjenje, a zatim pomoću funkcije DateDiff prikazuje broj dana između datuma narudžbe i datuma otpreme. |
YearHired: DatePart("yyyy",[HireDate]) |
Stvara polje GodinaZapošljavanja, a zatim pomoću funkcije DatePart prikazuje godinu zapošljavanja svakog zaposlenika. |
MinusThirty: Date( )- 30 |
Stvara polje MinusTrideset, a zatim pomoću funkcije Date prikazuje datum koji nastupa 30 dana prije trenutnog datuma. |
SQL agregacijske funkcije
Izrazi u tablici u nastavku koriste SQL (Structured Query Language) funkcije koje agregiraju ili sažimaju podatke. Takve se funkcije (npr. Sum, Count i Avg) često nazivaju agregacijskim funkcijama.
Osim agregacijskih funkcija Access nudi i "domenske" agregacijske funkcije, pomoću kojih možete selektivno zbrajati i brojati vrijednosti. Možete, primjerice, prebrojiti samo vrijednosti unutar određenog raspona ili potražiti vrijednost iz druge tablice. Skup domenskih funkcija zbrajanja obuhvaća funkciju DSum, funkciju DCount i funkciju DAvg.
Za izračunavanje ukupnih zbrojeva često je potrebno stvoriti upit o ukupnim zbrojevima. Za zbrajanje po grupi, primjerice, potrebno je stvoriti upit o ukupnim zbrojevima. Da biste omogućili upit o ukupnim zbrojevima iz rešetke dizajna upita, na izborniku Prikaz kliknite Ukupni zbrojevi.
Izraz |
Opis |
---|---|
RowCount: Count(*) |
Stvara polje BrojRedaka, a zatim pomoću funkcije Count utvrđuje broj zapisa u upitu, uključujući polja s vrijednošću null (prazna). |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Stvara polje PostotakVozarine, a zatim izračunava postotak troškova vozarine dijeljenjem zbroja vrijednosti u polju Vozarina zbrojem vrijednosti u polju Podzbroj. (U ovom se primjeru koristi funkcija Sum.) Ovaj se izraz mora koristiti s upitom o ukupnim zbrojevima. Ako svojstvo polja Format postavite na postotak, nemojte uvrstiti *100. Dodatne informacije o stvaranju upita o ukupnim zbrojevima potražite u članku Zbrajanje podataka pomoću upita. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
Stvara polje ProsječnaVozarina, a zatim pomoću funkcije DAvg izračunava prosječnu vozarinu za sve narudžbe objedinjene u upitu o ukupnim zbrojevima. |
Polja u kojima nedostaju podaci
Ovdje prikazani izrazi funkcioniraju s poljima s potencijalno nedostajućim podacima, npr. s poljima koja sadrže vrijednosti null (nepoznate ili nedefinirane vrijednosti). Često možete naići na vrijednosti null, npr. na nepoznatu cijenu za novi proizvod ili na vrijednost koju je suradnik zaboravio dodati u narudžbu. Mogućnost pronalaženja i obrade vrijednosti null ključan je dio operacija baze podataka, a izrazi u tablici u nastavku pokazuju neke uobičajene načine postupanja s vrijednostima null.
Izraz |
Opis |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
Stvara polje TrenutnaDržavaIliRegija, a zatim pomoću funkcija IIf i IsNull u njemu prikazuje prazan niz kada polje DržavaIliRegija sadrži vrijednost null. U suprotnom prikazuje sadržaj polja DržavaIliRegija. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Stvara polje Trajanje, a zatim pomoću funkcija IIf i IsNull prikazuje poruku "Provjerite ne nedostaje li datum" ako polje TraženiDatum ili polje DatumOtpreme ima vrijednost null. U suprotnom prikazuje razliku između datuma. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
Stvara polje ProdajaUšestMjeseci, a zatim prikazuje ukupan zbroj vrijednosti u poljima ProdajaUprvomTromjesečju i ProdajaUdrugomTromjesečju tako što najprije pomoću funkcije Nz sve vrijednosti null pretvori u nulu. |
Izračunata polja s podupitima
Izračunato polje možete stvoriti pomoću ugniježđenog upita, koji se još naziva i podupit. Izraz u tablici u nastavku primjer je izračunatog polja nastalog iz podupita.
Izraz |
Opis |
---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
Stvara polje Kategorija, a zatim prikazuje NazivKategorije ako je IDkategorije iz tablice Kategorije isti kao IDkategorije iz tablice Proizvodi. |
Podudaranje s vrijednosti teksta
Ogledni izrazi u ovoj tablici pokazuju kriterije koji traže podudaranje s cijelim ili djelomičnim tekstnim vrijednostima.
Polje |
Izraz |
Opis |
---|---|---|
Odredište |
"London" |
Prikazuje narudžbe poslane u London. |
OdredišniGrad |
"London" Or "Hedge End" |
Pomoću operatora Or prikazuje narudžbe poslane u London ili Hedge End. |
OdredišnaDržavaIliRegija |
In("Canada", "UK") |
Pomoću operatora In prikazuje narudžbe poslane u Kanadu ili Veliku Britaniju. |
OdredišnaDržavaIliRegija |
Not "USA" |
Pomoću operatora Not prikazuje narudžbe poslane u sve druge države ili regije osim SAD-a. |
NazivProizvoda |
Not Like "C*" |
Pomoću operatora Not i zamjenskog znaka * prikazuje proizvode čiji nazivi ne počinju slovom C. |
NazivTvrtke |
>="N" |
Prikazuje narudžbe poslane tvrtkama čini nazivi počinju slovima od N do Z. |
ŠifraProizvoda |
Right([ProductCode], 2)="99" |
Pomoću funkcije Right prikazuje narudžbe s vrijednostima ŠifraProizvoda koje završavaju s 99. |
NazivPrimatelja |
Like "S*" |
Prikazuje narudžbe poslane klijentima čiji nazivi počinju slovom S. |
Podudaranje s kriterijem datuma
Izrazi u tablici u nastavku pokazuju kako se datumi i povezane funkcije koriste u izrazima s kriterijima. Dodatne informacije o unosu i korištenju vrijednosti datuma potražite u članku Oblikovanje polja datuma ili vremena.
Polje |
Izraz |
Opis |
---|---|---|
DatumSlanja |
#2/2/2017# |
Prikazuje narudžbe poslane 2. veljače 2017. |
DatumSlanja |
Date() |
Prikazuje narudžbe poslane danas. |
DatumPotrebe |
Between Date( ) And DateAdd("m", 3, Date( )) |
Pomoću operatora Between...And i funkcija DateAdd i Date prikazuje potrebne narudžbe između današnjeg datuma i datuma koji nastupa tri mjeseca nakon današnjeg datuma. |
DatumNarudžbe |
< Date( ) - 30 |
Pomoću funkcije Date prikazuje narudžbe starije od 30 dana. |
DatumNarudžbe |
Year([OrderDate])=2017 |
Pomoću funkcije Year prikazuje narudžbe s datumom u 2017. godini. |
DatumNarudžbe |
DatePart("q", [OrderDate])=4 |
Pomoću funkcije DatePart prikazuje narudžbe za četvrto tromjesečje u godini. |
DatumNarudžbe |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
Pomoću funkcija DateSerial, Year i Month prikazuje narudžbe za zadnji dan svakog mjeseca. |
DatumNarudžbe |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
Pomoću funkcija Year i Month te operatora And prikazuje narudžbe za trenutnu godinu i mjesec. |
DatumSlanja |
Between #1/5/2017# And #1/10/2017# |
Pomoću operatora Between...And prikazuje narudžbe poslane između 5. siječnja 2017. i 10. siječnja 2017. |
DatumPotrebe |
Between Date( ) And DateAdd("M", 3, Date( )) |
Pomoću operatora Between...And prikazuje potrebne narudžbe između današnjeg datuma i datuma koji nastupa tri mjeseca nakon današnjeg datuma. |
DatumRođenja |
Month([BirthDate])=Month(Date()) |
Pomoću funkcija Month i Date prikazuje zaposlenike koji imaju rođendan ovog mjeseca. |
Pronalaženje podataka koji nedostaju
Izrazi u tablici u nastavku rade s poljima koji sadrže potencijalno nedostajuće podatke – s onima koji možda sadrže vrijednost null ili niz nulte duljine. Vrijednost null predstavlja nepostojanje podataka. Ne predstavlja nulu ni bilo koju drugu vrijednost. Access podržava ideju o nedostajućim podacima jer je taj koncept ključan za integritet baze podataka. Podaci u praksi često nedostaju, ponekad samo privremeno (npr. cijena novog proizvoda koja još nije određena). Zato baza podataka koja modelira entitet iz prakse, kao što je tvrtka, mora imati mogućnost evidentiranja podataka kao nedostajućih. Pomoću funkcije IsNull možete utvrditi sadrži li polje ili kontrola vrijednost null, a pomoću funkcije Nz vrijednost null možete pretvoriti u nulu.
Polje |
Izraz |
Opis |
---|---|---|
OdredišnaRegija |
Is Null |
Prikazuje narudžbe za klijente čije polje OdredišnaRegija sadrži vrijednost null (ne sadrži nijednu vrijednost). |
OdredišnaRegija |
Is Not Null |
Prikazuje narudžbe za klijente čije polje OdredišnaRegija sadrži neku vrijednost. |
Faks |
"" |
Prikazuje narudžbe za klijente koji nemaju faks-uređaj, na što upućuje vrijednost niza nulte duljine u polju Faks umjesto vrijednosti null (nedostajuće vrijednosti). |
Podudaranje uzoraka zapisa s operatorom Like
Operator Like nudi veliku fleksibilnost prilikom traženja podudaranja s recima koji slijede određeni uzorak jer operator Like možete koristiti sa zamjenskim znakovima i definirati uzorke na temelju kojih će Access tražiti podudaranja. Zamjenski znak * (zvjezdica), primjerice, omogućuje traženje podudaranja s nizom znakova bilo koje vrste i pojednostavnjuje pronalaženje svih naziva koji počinju određenim slovom. Na primjer, koristite izraz Like "S*" da biste pronašli sve nazive koji počinju slovom S. Dodatne informacije potražite u članku Operator Like.
Polje |
Izraz |
Opis |
---|---|---|
NazivPrimatelja |
Like "S*" |
Pronalazi sve zapise u polju NazivOdredišta koji počinju slovom S. |
NazivOdredišta |
Like "*Imports" |
Pronalazi sve zapise u polju NazivOdredišta koji završavaju riječju "Uvoz". |
NazivPrimatelja |
Like "[A-D]*" |
Pronalazi sve zapise u polju NazivOdredišta koji počinju slovom A, B, C ili D. |
NazivPrimatelja |
Like "*ar*" |
Pronalazi sve zapise u polju NazivPrimatelja koji sadrže niz slova "ar". |
NazivOdredišta |
Like "Maison Dewe?" |
Pronalazi sve zapise u polju NazivOdredišta koji sadrže riječ "Maison" u prvom dijelu vrijednosti i niz od pet slova u kojem su prva četiri slova "Dewe", a posljednje slovo nije poznato. |
NazivOdredišta |
Not Like "A*" |
Pronalazi sve zapise u polju NazivPrimatelja koji ne počinju slovom A. |
Podudaranje redaka sa SQL agregacijama
SQL ili domensku agregacijsku funkciju koristite kada morate selektivno zbrojiti ili prebrojiti vrijednosti ili pak izračunati njihov prosjek. Možda ćete, primjerice, htjeti prebrojiti samo vrijednosti unutar određenog raspona ili vrijednosti koje se vrednuju kao Da. U drugim ćete situacijama možda htjeti potražiti određenu vrijednost iz druge tablice da biste je mogli prikazati. U oglednim primjerima u tablici u nastavku koriste se domenske agregacijske funkcije za izvođenje izračuna na skupu vrijednosti i rezultat se koristi kao kriterij za upit.
Polje |
Izraz |
Opis |
---|---|---|
Vozarina |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
Pomoću funkcija DStDev i DAvg prikazuje sve narudžbe za koje je trošak vozarine veći od prosječne vrijednosti uvećane za standardnu devijaciju troška vozarine. |
Količina |
> DAvg("[Quantity]", "[Order Details]") |
Pomoću funkcije DAvg prikazuje proizvode naručene u količinama većim od prosječne naručene količine. |
Poudaranje polja s podupitima
Pomoću podupita, koji se naziva i ugniježđeni upit, možete izračunati vrijednost koja će se koristiti kao kriterij. Ogledni izrazi u tablici u nastavku traže podudarne retke na temelju rezultata koje je vratio podupit.
Polje |
Izraz |
Prikazuje |
---|---|---|
JediničnaCijena |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
Proizvodi s istom cijenom kao sirup od anisa. |
JediničnaCijena |
>(SELECT AVG([UnitPrice]) FROM [Products]) |
Proizvodi s jediničnom cijenom većom od prosječne. |
Plaća |
> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
Plaća svakog prodajnog predstavnika koja je veća od plaće svih zaposlenika čije je radno mjesto "Upravitelj" ili "Potpredsjednik". |
UkupnaNarudžba: [JediničnaCijena] * [Količina] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
Narudžbe s ukupnim zbrojevima većim od prosječne vrijednosti narudžbe. |
Upiti s ažuriranjem
Pomoću upita s ažuriranjem možete izmijeniti podatke u jednom ili više postojećih polja u bazi podataka. Možete, primjerice, zamijeniti vrijednosti ili ih u potpunosti izbrisati. Ova tablica pokazuje neke načine korištenja izraza u upitima s ažuriranjem. Ove izraze koristite u retku Ažuriraj u rešetke dizajna upita za polje koje želite ažurirati.
Dodatne informacije o stvaranju upita s ažuriranjem potražite u članku Stvaranje i pokretanje upita s ažuriranjem.
Polje |
Izraz |
Rezultat |
---|---|---|
Naslov |
"Salesperson" |
Mijenja tekstnu vrijednost u Prodavač. |
PočetakProjekta |
#8/10/17# |
Mijenja vrijednost datuma u 10-kol-17. |
Povučeno |
Yes |
Vrijednost Ne u polju Da/Ne mijenja u Da. |
BrojDijela |
"PN" & [PartNumber] |
Dodaje BD na početak svakog navedenog serijskog broja dijela. |
UkupnaCijenaStavkiUretku |
[UnitPrice] * [Quantity] |
Izračunava umnožak vrijednosti JediničnaCijena i Količina. |
Vozarina |
[Freight] * 1.5 |
Povećava trošak vozarine za 50 %. |
Prodaja |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
Kada se vrijednosti IDproizvoda u trenutnoj tablici podudaraju s vrijednostima IDproizvoda u tablici Detalji o narudžbi, ažurira ukupnu prodaju na temelju umnoška vrijednosti Količina i JediničnaCijena. |
PoštanskiBrojOdredišta |
Right([ShipPostalCode], 5) |
Odbacuje krajnje lijeve znakove tako da ostane pet krajnjih desnih znakova. |
JediničnaCijena |
Nz([UnitPrice]) |
Vrijednost null (nedefiniranu ili nepoznatu vrijednost) u polju JediničnaCijena pretvara u nulu (0). |
SQL naredbe
SQL (Structured Query Language) jezik je za upite koji koristi Access. Svaki upit koji stvorite u prikazu dizajna može se izraziti i pomoću SQL-a. Da biste pogledali SQL naredbu za bilo koji upit, na izborniku Prikaz kliknite SQL prikaz. U tablici u nastavku prikazane su ogledne SQL naredbe koje koriste izraz.
SQL naredba koja koristi izraz |
Rezultat |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
Prikazuje vrijednosti u poljima FirstName i LastName za zaposlenike čije je prezime Vukelić. |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
Prikazuje vrijednosti u poljima IDproizvoda i NazivProizvoda u tablici Proizvodi za zapise u kojima se vrijednost IDkategorije podudara s vrijednošću IDkategorije navedenom u otvorenom obrascu Novi proizvodi. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
Izračunava prosječnu proširenu cijenu za narudžbe za koje je vrijednost u polju ProširenaCijena veća od 1000 i prikazuje je u polju Prosječna proširena cijena. |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
U polju BrojIDovaProizvoda prikazuje ukupan broj proizvoda za kategorije s više od 10 proizvoda. |
Izrazi tablice
Dva su najčešća načina korištenja izraza u tablicama dodjela zadane vrijednosti i stvaranje pravila provjere valjanosti.
Zadane vrijednosti polja
Prilikom osmišljavanja baze podataka preporučuje se da polju ili kontroli dodijelite zadanu vrijednost. Access će nakon toga koristiti zadanu vrijednost prilikom stvaranja novog zapisa koji sadrži to polje ili prilikom stvaranja objekta koji sadrži tu kontrolu. Izrazi u tablici u nastavku predstavljaju ogledne zadane vrijednosti za polje ili kontrolu. Ako je kontrola povezana s nekim poljem u tablici i ako to polje ima zadanu vrijednost, prednost ima zadana vrijednost kontrole.
Polje |
Izraz |
Zadana vrijednost za polje |
---|---|---|
Količina |
1 |
1 |
Regija |
"MT" |
SDŽ |
Regija |
"New York, N.Y." |
Zagrebačka županija, ZGŽ (Imajte na umu da vrijednost morate navesti unutar navodnika ako sadrži interpunkciju.) |
Faks |
"" |
Niz nulte duljine, koji upućuje na to da bi polje po zadanom trebalo biti prazno, a ne sadržavati vrijednost null |
Datum narudžbe |
Date( ) |
Današnji datum |
KrajnjiRok |
Date() + 60 |
Datum 60 dana nakon današnjeg |
Pravila provjere valjanosti polja
Pomoću izraza možete stvoriti pravilo provjere valjanosti za polje ili kontrolu. Access nakon toga primjenjuje to pravilo prilikom unosa podataka u to polje ili kontrolu. Da biste stvorili pravilo provjere valjanosti, izmijenite svojstvo ValidationRule polja ili kontrole. Možete i postaviti svojstvo ValidationText, koje sadrži tekst koji Access prikazuje kada se prekrši pravilo provjere valjanosti. Ako ne postavite svojstvo ValidationText, Access prikazuje zadanu poruku o pogrešci.
Primjeri u tablici u nastavku pokazuju izraze za pravila provjere valjanosti za svojstvo ValidationRule i pridruženi tekst za svojstvo ValidationText.
Svojstvo ValidationRule |
Svojstvo ValidationText |
---|---|
<> 0 |
Unesite vrijednost koja nije nula. |
0 Or > 100 |
Vrijednost mora biti 0 ili veća od 100. |
Like "K???" |
Vrijednost mora sadržavati četiri znaka i počinjati slovom K. |
< #1/1/2017# |
Unesite datum prije 1. siječnja 2017. |
>= #1/1/2017# And < #1/1/2008# |
Datum mora biti u 2017. |
Dodatne informacije o provjeri valjanosti podataka potražite u članku Stvaranje pravila za provjeru valjanosti za provjeru valjanosti podataka u polju.
Makroizrazi
U nekim ćete slučajevima u makronaredbi željeti izvesti akciju ili niz akcija ako je ispunjen određeni uvjet. Na primjer, pretpostavimo da želite da se akcija izvede samo ako je vrijednost u tekstnom okviru Brojač jednaka 10. Izraz koristite za definiranje uvjeta u bloku If:
[Counter]=10
Kao i kod svojstva ValidationRule , izraz u bloku If uvjetni je izraz. Njegov rezultat mora biti vrijednost True ili False. Akcija se izvršava samo kada se ispuni uvjet.
Izraz koji se koristi za izvršavanje akcije |
Ako |
---|---|
[City]="Paris" |
Pariz je vrijednost u polju Grad u obrascu iz kojeg je pokrenuta makronaredba. |
DCount("[OrderID]", "Orders") > 35 |
Postoji više od 35 stavki u polju IDnarudžbe u tablici Narudžbe. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
Postoji više od tri stavke u tablici Detalji o narudžbi u kojoj se polje IDnarudžbe podudara s poljem IDnarudžbe u obrascu Narudžbe. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
Vrijednost polja DatumOtpreme u obrascu iz kojeg je pokrenuta makronaredba predstavlja datum između 2. veljače 2017. i 2. ožujka 2017. |
Forms![Products]![UnitsInStock] < 5 |
Vrijednost polja JedinicaNaSkladištu u obrascu Proizvodi manja je od 5. |
IsNull([FirstName]) |
Polje Ime u obrascu iz kojeg je pokrenuta naredba ima vrijednost null (nema vrijednost). Taj je izraz istovjetan izrazu [Ime] Is Null. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
Vrijednost u polju DržavaIliRegija u obrascu iz kojeg je makronaredba pokrenuta jest Velika Britanija i vrijednost polja UkupanBrojNarudžbi u obrascu UkupnaProdaja veća je od 100. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
Vrijednost u polju DržavaIliRegija u obrascu iz kojeg je makronaredba pokrenuta jest Francuska, Italija ili Španjolska i poštanski broj nije dugačak pet znakova. |
MsgBox("Confirm changes?",1)=1 |
Kliknuli ste OK u dijaloškom okviru koji prikazuje funkcija MsgBox. Ako u dijaloškom okviru kliknete Odustani, Access zanemaruje akciju. |