Microsoft Accessis tuleb sageli töötada väärtustega, mida teie andmed otseselt ei sisalda. Näiteks võite soovida arvutada välja tellimuse käibemaks või tellimuse koguväärtus. Need väärtused saab arvutada avaldistega. Avaldiste kasutamiseks tuleb need õiges süntaksis kirjutada. Süntaks on reeglitekomplekt, mille järgi avaldise sõnad ja märgid kombineeritakse. Esialgu on Accessi avaldisi pisut keeruline lugeda. Kui aga avaldise süntaksit mõistma hakkate ja sellega harjute, muutub töö märksa lihtsamaks.
Selles artiklis
Avaldiste ülevaade
Avaldis koosneb mõnest või kõigist järgmistest osadest: sisseehitatud või kasutaja määratletud funktsioonid, identifikaatorid, tehtemärgid, väärtused ja konstandid, millega saab arvutada ühe väärtuse.
Näiteks järgmine avaldis sisaldab levinumaid elemente:
=Sum([Purchase Price])*0.08
-
Sum() on sisseehitatud funktsioon,
-
[Purchase Price] on identifikaator,
-
* on matemaatiline tehtemärk,
-
0.08 on konstant.
Seda avaldist võib kasutada vormi või aruande jaluses tekstiväljal, et arvutada üksuste rühmas käibemaks.
Avaldised võivad olla sellest näitest ka palju keerukamad või lihtsamad. Näiteks järgmine kahendmuutuja koosneb ainult tehtemärgist ja konstandist:
>0
Avaldis tagastab järgmise väärtuse:
-
True, kui seda võrreldakse 0-st suurema arvuga;
-
False, kui seda võrreldakse 0-st väiksema arvuga.
Saate kasutada seda avaldist juhtelemendi või tabelivälja atribuudis Valideerimisreegel, et tagada ainult positiivsete väärtuste sisestamine. Avaldisi kasutatakse paljudes kohtades arvutuste tegemiseks, märkide töötlemiseks või andmete testimiseks. Tabelitel, päringutel, vormidel, aruannetel ja makrodel on kõigil atribuute, mis saavad aktsepteerida avaldist. Saate kasutada avaldisi näiteks juhtelemendi atribuutides Juhtelemendi allikas ja Vaikeväärtus. Samuti saate kasutada avaldisi tabelivälja atribuudis Valideerimisreegel.
Avaldise komponendid
Avaldise koostamiseks tuleb identifikaatorid kombineerida funktsioonide, tehtemärkide, konstantide ja väärtuste abil. Mis tahes kehtiv avaldis peab sisaldama vähemalt ühte funktsiooni või vähemalt ühte identifikaatorit ning võib sisaldada ka konstante või tehtemärke. Avaldist saate kasutada ka teise avaldise osana – tavaliselt funktsiooni argumendina. Seda nimetatakse avaldise pesastamiseks.
-
Identifikaatorid Üldine vorm on:
[Collection name]![Object name].[Property name]
Identifikaatorist tuleb määrata piisavalt osasid, et see oleks avaldise kontekstis kordumatu. Identifikaator võib esineda ka kujul [Object name].
-
Funktsioonid Üldine vorm on:
Function(argument, argument)
Üks argument on tavaliselt identifikaator või avaldis. Mõni funktsioon ei nõua argumente. Enne konkreetse funktsiooni kasutamist vaadake selle süntaksit. Lisateavet leiate teemast Funktsioonid (kategooriate kaupa).
-
Tehtemärgid Üldine vorm on:
Identifier operator identifier
Selles vormis on ka erandeid – need on toodud jaotises Tehtemärgid.
-
Konstandid Üldine vorm on:
Identifier comparison_operator constant
-
Väärtused Väärtused võivad avaldises esineda paljudes asukohtades.
Objektid, kogumid ja atribuudid
Accessi andmebaasi tabeleid, päringuid, vorme, aruandeid ja väljasid nimetatakse objektideks. Igal objektil on nimi. Mõnedel objektidel on nimed juba olemas, näiteks Microsoft Office Accessi kontaktide malli põhjal loodud kontaktide tabelil. Uue objekti loomisel tuleb panna sellele ka nimi.
Teatud tüüpi objekti liikmete komplekti nimetatakse kogumiks. Näiteks moodustavad andmabaasi kõik tabelid kokku kogumi. Mõned teie andmebaasi kogumisse kuuluvad objektid võivad ka ise olla objekte sisaldavad kogumid. Näiteks tabeliobjekt on kogum, mis sisaldab väljaobjekte.
Objektidel on atribuudid, mis kirjeldavad ja võimaldavad muuta objekti omadusi. Näiteks on päringuobjektil atribuut vaikevaade, mis kirjeldab ja võimaldab määratleda, kuidas päring selle käivitamisel kuvatakse.
Järgnev diagramm näitab suhet kogumite, objektide ja atribuutide vahel.
|
3 Atribuut 2 Objekt 1 Kogum |
Identifikaatorid
Avaldises objekti, kogumi või atribuudi kasutamisel viidatakse vastavale elemendile identifikaatoriga. Identifikaator koosneb identifitseeritava elemendi nimest ja selle elemendi nimest, mille juurde esimene kuulub. Näiteks välja identifikaatorisse kuuluvad välja nimi ja tabeli nimi, millesse väli kuulub. Näiteks võib selline avaldise identifikaator olla järgmine:
[Customers]![BirthDate]
Mõnel juhul piisab identifikaatori jaoks ka lihtsalt elemendi nimest. See on nii siis, kui elemendi nimi on loodava avaldise kontekstis kordumatu. Identifikaatori ülejäänud osa tuletatakse kontekstist. Kui näiteks loote päringu, mis kasutab ainult ühte tabelit, sobivad identifikaatoriteks väljanimed, kuna väljade nimed tabelis peavad olema kordumatud. Kuna kasutate ainult ühte tabelit, tuletatakse tabeli nimi igas identifikaatoris, mida kasutate päringus väljale viitamiseks.
Teistel juhtudel peab töötava viite saamiseks olema identifikaatori osadega väga täpne. Näiteks siis, kui identifikaator ei ole avaldise kontekstis kordumatu. Kattumiste korral tuleb määrata piisavalt identifikaatori osi, et muuta identifikaator antud kontekstis kordumatuks. Oletame, et loote päringu, mis kasutab tabeleid nimega „Tooted“ ja „Tellimused“, ning mõlemas tabelis on väli nimega TooteID. Sel juhul peab identifikaator, mida kasutate väljadele TooteID viitamiseks, hõlmama lisaks välja nimele ka tabeli nime. Näide:
[Products]![ProductID]
Identifikaatori tehtemärgid Identifikaatorites kasutatakse kolme tehtemärki.
-
Hüüumärk (!)
-
Punkt (.)
-
Nurksulud ([ ])
Neid tehtemärke kasutatakse järgmiselt: identifikaatori iga osa ümbritsetakse nurksulgudega ning liidetakse hüüumärgi või punktiga. Näiteks oleks tabeli „Töötajad“ välja „Perekonnanimi“ identifikaator järgmine: [Employees]![Last Name]. Hüüumärk ütleb Accessile, et märgile järgnev on märgile eelneva (kogumi) objekt. Praegusel juhul on [perekonnanimi] väljaobjekt, mis kuulub kogumisse [Töötajad] – viimane on omakorda tabeliobjekt.
Alati ei pea identifikaatori või osalise identifikaatori ümber nurksulge panema. Kui identifikaatoris ei ole tühikuid või erimärke, lisab Access avaldist lugedes nurksulud automaatselt. Siiski on mõttekas nurksulud ise tippida – nii väldite vigu ning nii on lihtsam silmaga eristada, millised avaldise osad on identifikaatorid.
Funktsioonid, tehtemärgid, konstandid ja väärtused
Avaldise loomiseks ei piisa vaid identifikaatoritest – sooritada tuleb ka mingi toiming. Avaldistes kasutatakse toimingute tegemiseks funktsioone, tehtemärke ja konstante.
Funktsioonid
Funktsioon on see, mille alusel tehakse avaldises toiminguid. Mõned funktsioonid (nagu näiteks Date) töötavad ka ilma lähteandmeteta. Enamik funktsioone aga nõuavad lähteandmeid ehk argumente.
Selle artikli alguses näites kasutab funktsioon DatePart kahte argumenti: intervalliargument (väärtusega "yyyy") ja kuupäevaargument (väärtusega [Customers]![BirthDate]). Funktsioon DatePart nõuab vähemalt neid kahte argumenti (intervall ja kuupäev), aga aktsepteerib kuni nelja argumenti.
Järgnevas loendis näete avaldistes kasutatavaid levinumaid funktsioone. Klõpsake funktsiooni linki, kui soovite selle funktsiooni süntaksi kohta lisateavet.
-
Funktsiooni Date kasutatakse avaldisse süsteemi praeguse kuupäeva sisestamiseks. Harilikult kasutatakse seda koos funktsiooniga Format ning koos kuupäeva/kellaajaandmeid sisaldavate väljade identifikaatoritega.
=Date()
-
Funktsiooni DatePart kasutatakse kuupäeva osa määramiseks või ekstraktimiseks – harilikult kuupäevast, mis saadakse väljaidentifikaatorist, vahel ka kuupäevaväärtusest, mille tagastab mõni teine funktsioon (nt Date).
DatePart ( "yyyy", Date())
-
Funktsiooni DateDiff kasutatakse kahe kuupäeva – tavaliselt väljaidentifikaatorist saadud kuupäeva ja funktsiooniga Date saadud kuupäeva – vahelise erinevuse määramiseks.
=DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10
-
Funktsiooni Format kasutatakse identifikaatori vormindamiseks ja samuti mõne teise funktsiooni tulemuste vormindamiseks.
Format([Date],"ww")=Format(Now(),"ww")-1
-
Funktsiooniga IIf hinnatakse, kas avaldis on tõene või väär. Tagastatakse üks väärtus, kui avaldis osutub tõeseks, ja teine väärtus, kui avaldis osutub vääraks.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
-
Funktsiooni InStr kasutatakse stringis mingi märgi või teise stringi otsimiseks. Otsitav string saadakse harilikult väljaidentifikaatorist.
InStr(1,[IPAddress],".")
-
Funktsioone Left, Mid ja Right kasutatakse stringist märkide ekstraktimiseks, alustades kõige vasakpoolsemast märgist (Left), kindlast asukohast keskel (Mid) või parempoolseimast märgist (Right). Neid kasutatakse tavaliselt koos funktsiooniga InStr. String, millest need funktsioonid ekstraktivad märke, saadakse tavaliselt väljaidentifikaatorist.
Left([ProductName], 1) Right([AssetCode], 2) Mid([Phone],2,3)
Funktsioonide loendi leiate teemast Funktsioonid (kategooriate kaupa).
Tehtemärgid
Tehtemärk on sõna või märk, mis kirjeldab avaldise elementide vahelist aritmeetilist või loogilist seost. Tehtemärgid võivad olla järgmist tüüpi:
-
aritmeetilised, nt plussmärk (+),
-
võrdlusmärgid, nt võrdusmärk (=),
-
loogilised, nt Not,
-
ühendamismärgid, nt &,
-
erimärgid, nt Like.
Tehtemärke kasutatakse tavaliselt kahe identifikaatori vahelise seose tähistamiseks. Järgnevad tabelid kirjeldavad Accessi avaldistes kasutatavaid tehtemärke.
Aritmeetilised
Aritmeetilisi tehtemärke kasutatakse kahe või enama arvu alusel väärtuse arvutamiseks või arvu muutmiseks positiivseks või negatiivseks.
Tehtemärk |
Otstarve |
Näide |
---|---|---|
+ |
Liidab kaks arvu. |
[Vahesumma] + [Käibemaks] |
- |
Arvutab kahe arvu vahelise erinevuse või väljendab arvu negatiivset väärtust. |
[Hind] - [Allahindlus] |
* |
Korrutab kaks arvu. |
[Kogus] * [Hind] |
/ |
Jagab esimese arvu teisega. |
[Kogusumma] / [Kaupade_arv] |
\ |
Ümardab mõlemad arvud täisarvuks, jagab esimese arvu teise arvuga ja lühendab tulemuse täisarvuks. |
[Registreerunud] \ [Toad] |
Mod |
Jagab esimese arvu teisega ja kuvab ainult jäägi. |
[Registreerunud] Mod [Toad] |
^ |
Tõstab arvu astendajale vastavasse astmesse. |
Arv ^ astendaja |
Võrdlusmärgid
Võrdlusmärke kasutatakse väärtuste võrdlemiseks ja selleks, et tagastataks väärtus „tõene“, „väär“ või „tühi“ (tundmatu väärtus).
Tehtemärk |
Otstarve |
---|---|
< |
Määrab tingimuseks, et esimene väärtus on väiksem kui teine. |
<= |
Määrab tingimuseks, et esimene väärtus on väiksem, kui teine väärtus, või võrdne teise väärtusega. |
> |
Määrab tingimuseks, et esimene väärtus on suurem kui teine väärtus. |
>= |
Määrab tingimuseks, et esimene väärtus on suurem kui teine väärtus, või võrdne teise väärtusega. |
= |
Määrab tingimuseks, et esimene väärtus on teisega võrdne. |
<> |
Määrab tingimuseks, et esimene väärtus ei võrdu teise väärtusega. |
Igal juhul – kui esimene või teine väärtus on Null, siis on tulemuseks samuti Null. Null tähistab tundmatut väärtust ning iga võrdlus, kus on Null, annab tulemuseks samuti tundmatu väärtuse.
Loogilised
Loogikatehtemärke kasutatakse kahe väärtuse kombineerimisel – selleks et tagastataks väärtus „tõene“, „väär“ või „tühi“. Loogikatehtemärke nimetatakse ka kahend-tehtemärkideks.
Tehtemärk |
Kasutus |
Kirjeldus |
---|---|---|
And |
Avaldis1 AND Avaldis2 |
Tõene, kui Avaldis1 ja Avaldis2 on tõesed. |
Or |
Avaldis1 OR Avaldis2 |
Tõene, kui Avaldis1 või Avaldis2 on tõene. |
Eqv |
Avaldis1 EQV Avaldis2 |
Tõene, kui Avaldis1 ja Avaldis2 mõlemad on tõesed või kui need mõlemad on väärad. |
Not |
NOT Avaldis |
Tõene, kui Avaldis ei ole tõene. |
Xor |
Avaldis1 XOR Avaldis2 |
Tõene, kui Avaldis 1 on tõene või kui Avaldis2 on tõene (kui mõlemad korraga ei ole tõesed). |
Ühendamismärgid
Ühendamismärke kasutatakse selleks,et ühendada kaks tekstiväärtust üheks stringiks.
Tehtemärk |
Kasutus |
Kirjeldus |
---|---|---|
& |
string1 & string2 |
Ühendab kaks stringi üheks stringiks. |
+ |
string1 + string2 |
Ühendab kaks stringi üheks ja levitab tühiväärtused. |
Erimärgid
Eritehtemärkide kasutamist kirjeldatakse järgmises tabelis.
Tehtemärk |
Kirjeldus |
Lisateave |
---|---|---|
Is Null or Is Not Null |
Määrab, kas väärtus on tühi või mitte. |
|
Like "pattern" |
Sobitab stringiväärtused, kasutades metamärke ? ja *. |
|
Between val1 And val2 |
Määrab, kas arv- või kuupäevaväärtus jääb kindlasse vahemikku. |
|
In(string1,string2...) |
Määrab, kas stringi väärtus on olemas mingis stringiväärtuste komplektis. |
Konstandid
Konstant on avaldises kasutatav (teada) muutumatu väärtus. Accessis kasutatakse ennekõike nelja konstanti.
-
True tähistab midagi, mis on loogiliselt tõene.
-
False tähistab midagi, mis on loogiliselt väär.
-
Null tähistab teadaoleva väärtuse puudumist.
-
"" (empty string) tähistab tühiväärtust.
Konstante saab kasutada funktsiooni argumentidena ja neid saab kasutada avaldises kriteeriumi osana. Näiteks saate päringu veeru kriteeriumi osana kasutada tühja stringikonstanti ("") selle veeru väljaväärtuste hindamiseks, sisestades kriteeriumina järgmise teabe: <>"". Selles näites on <> tehtemärk ja "" on konstant. Koos kasutamisel näitavad need, et identifikaatorit, millele need on rakendatud, tuleks võrrelda tühja stringiga. Avaldis, mille tulem on tõene, kui identifikaatori väärtus pole tühi string.
Olge konstandi Null kasutamisel ettevaatlik. Konstandi Null kasutamisel koos võrdlusmärkidega saadakse enamasti tulemuseks veaväärtus (veateade). Kui soovite võrrelda avaldises väärtust konstandiga Null, kasutage tehtemärki Is Null või Is Not Null.
Väärtused
Saate oma avaldistes kasutada literaalväärtusi (nt arvu 1254 või stringi Sisestage arv vahemikus 1–10). Saate kasutada ka arvväärtusi, mis võivad olla arvujadad, mis võivad sisaldada märke ja komakohti. Märgi puudumise korral määrab Access positiivse väärtuse. Väärtuse muutmiseks negatiivseks lisage miinusmärk (-). Saate kasutada ka teaduslikku esitust. Selleks kaasake "E" või "e" ja astendusmärk (nt 1.0E-6).
Kui kasutate tekstistringe, pange need jutumärkidesse, et Access tõlgendaks neid õigesti. Teatud juhtudel sisestab Access jutumärgid teie eest ise. Näiteks teksti sisestamisel avaldise valideerimisreegli või päringukriteeriumide jaoks, ümbritseb Access teie tekstistringid automaatselt jutumärkidega.
Näiteks kui tipite teksti Paris, kuvab Access avaldises teksti „Pariis“. Kui soovite, et avaldis sisaldaks stringi, mis on ka tegelikult ümbritsetud jutumärkidega, ümbritsege pesastatud string ühekordsete jutumärkidega (') või kolmekordsete topeltjutumärkidega ("). Näiteks järgmised avaldised on võrdväärsed:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
Kuupäeva-/kellaajaväärtuste kasutamiseks ümbritsege väärtused trellimärkidega (#). Näiteks #3-7-17#, #7-Mar-17# ja #Mar-7-2017# on kõik sobivad kuupäeva-/kellaajaväärtused. Kui Access tuvastab sobiva kuupäeva-/kellaajaväärtuse, mis on ümbritsetud trellimärkidega, tõlgendab Access seda väärtust automaatselt andmetüübina Kuupäev/kellaaeg.
Veebiandmebaasi avaldiste pesastamise piirang on 65
65-st tasemest sügavamale pesastatud avaldised brauseris ei tööta, seetõttu pole soovitatav selliseid avaldisi Accessi veebiandmebaasis kasutada. Tõrketeateid ei kuvata – avaldis lihtsalt ei tööta.
Tehtemärkide &, AND ja OR kasutamisega saab luua serveris täiendavaid pesastamistasemeid, mis Accessi klientrakenduses ei kajastu. Näiteks avaldis "a" & "b" & "c" pole avaldisekoosturis pesastatud, kuid SharePointis muutub see avaldiseks concatenate.Db("a", concatenate.Db("b", "c") ). Selline teisendus loob ühe pesastamistaseme. Mitme järjestikuse tehtemärgi &, AND või OR kasutamine ühes avaldises võib põhjustada serveri pesastamispiirangu 65 ületamise, mistõttu avaldis brauseris ei tööta.