Kui kasutate Microsoft Accessi, peate sageli töötama väärtustega, mis ei ole otse teie andmetes. 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
- Avaldise komponendid
- Objektid, kogumid ja atribuudid
- Identifikaatorid
- Funktsioonid, tehtemärgid, konstandid ja väärtused
- Veebiandmebaasi avaldiste pesastamise piirang on 65
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.08on 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 koosneb see loogikaavaldis ainult tehtemärgist ja konstandist:
>0
Avaldis tagastab järgmise väärtuse:
-
Truekui seda võrreldakse arvuga, mis on suurem kui 0. -
Falsekui seda võrreldakse arvuga, mis on väiksem kui 0.
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 mõne muu avaldise osana – tavaliselt funktsiooni argumendina. Seda nimetatakse avaldise pesastamiseks.
Identifikaatorid – üldine kuju on järgmine:
[Collection name]![Object name].[Property name]Identifikaatorist tuleb määrata piisavalt osasid, et see oleks avaldise kontekstis kordumatu. Identifikaatori vorm
[Object name]ei ole haruldane.Funktsioonid – üldine kuju on järgmine:
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 kuju on järgmine:
Identifier operator identifierSelles vormis on ka erandeid – need on toodud jaotises Tehtemärgid.
Konstandid – üldine kuju on järgmine:
Identifier comparison_operator constantVäärtused – väärtused võivad avaldises olla mitmes kohas.
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.
- Haugu tehtemärk (
!) - Punkti tehtemärk (
.) - Nurksulgude tehtemärk (
[ ])
Neid tehtemärke kasutatakse järgmiselt: identifikaatori iga osa ümbritsetakse nurksulgudega ning liidetakse hüüumärgi või punktiga. Näiteks välja "Perekonnanimi" identifikaatorit tabelis "Töötajad" saab väljendada kui [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õistlik nurksulud ise tippida – see aitab teil vigu vältida ja toimib visuaalse vihjena, et konkreetne avaldise osa on identifikaator.
Funktsioonid, tehtemärgid, konstandid ja väärtused
Avaldise loomiseks on vaja rohkem kui identifikaatoreid – peate tegema mingi toimingu. 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 olevas 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 – tavaliselt kuupäeva, mis saadakse väljaidentifikaatorist, kuid mõnikord ka kuupäevaväärtusest, mille tagastab mõni muu funktsioon (nt Date).
DatePart ( "yyyy", Date())Funktsiooni DateDiff kasutatakse kahe kuupäeva vahelise erinevuse määramiseks – tavaliselt väljaidentifikaatorist saadud kuupäeva ja funktsiooni date abil saadud kuupäeva vahel.
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10Funktsiooni Format kasutatakse identifikaatori vormindamiseks ja samuti mõne teise funktsiooni tulemuste vormindamiseks.
Format([Date],"ww")=Format(Now(),"ww")-1Funktsiooni IIf kasutatakse avaldise väärtuseks tõene või väär ning tagastab ühe väärtuse, kui avaldis on tõene, ja teise väärtuse, kui avaldis on väär.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")Funktsiooni InStr kasutatakse märgi või stringi asukoha otsimiseks mõnes muus stringis. 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:
-
Aritmeetiline, näiteks plussmärk (
+). -
Võrdlus, näiteks võrdusmärk (
=). -
Loogiline, näiteks
Not. -
Ühendamine, nt
&. -
Eriotstarbeline, näiteks
Like.
Tehtemärke kasutatakse tavaliselt kahe identifikaatori vahelise seose tähistamiseks. Järgnevad tabelid kirjeldavad Accessi avaldistes kasutatavaid tehtemärke.
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. |
Kõigil juhtudel, kui esimene või teine väärtus on Null, on tulem ka Null. Kuna Null see tähistab tundmatut väärtust, on ka suvalise võrdluse Null tulem tundmatu.
Loogika
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" |
Vastendab stringiväärtused metamärkide ?ja *. |
Tehtemärk Like |
Between val1 And val2 |
Määrab, kas arv- või kuupäevaväärtus jääb kindlasse vahemikku. | Tehtemärk „Between...And“ |
In(string1,string2...) |
Määrab, kas stringi väärtus on olemas mingis stringiväärtuste komplektis. | Tehtemärk „In“ |
Konstandid
Konstant on avaldises kasutatav (teada) muutumatu väärtus. Accessis kasutatakse ennekõike nelja konstanti.
-
Truetähistab midagi, mis on loogiliselt tõene. -
Falsetähistab midagi, mis on loogiliselt väär. -
Nullnäitab teadaoleva väärtuse puudumist. -
"" (empty string)näitab väärtust, mis on teadaolevalt tühi.
Konstante saab kasutada funktsiooni argumentidena ja neid saab kasutada avaldises kriteeriumi osana. Näiteks saate kasutada tühja stringikonstanti ("") päringu veeru kriteeriumi osana, et hinnata selle veeru väljaväärtusi, sisestades kriteeriumina järgmise teabe: <>"". Selles näites <> on tehtemärk ja "" 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. Enamasti toob võrdlusmärgi kasutamine Null koos võrdlusmärgiga kaasa vea. Kui soovite võrrelda avaldise väärtust Null , kasutage tehtemärki Is NullIs Not Null või .
Väärtused
Avaldistes saab kasutada literaalväärtusi nagu arv 1254 või string „Sisestage arv vahemikus 1–100“. Arvväärtused võivad olla arvuseeriad (sisaldades vajadusel ka pluss- ja miinusmärke või komakohti) Märgi puudumise korral määrab Access positiivse väärtuse. Väärtuse negatiivseks muutmiseks kaasake 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 koostaks stringi, mis on tegelikult ümbritsetud jutumärkidega, ümbritsege pesastatud string kas ülakomadega (') või kolme kahekordsete (") jutumärkide komplektiga. Näiteks järgmised avaldised on võrdväärsed:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
Kuupäeva-/kellaajaväärtuste kasutamiseks pange väärtused trellimärkidesse (#). 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
Rohkem kui 65 taseme sügavusele pesastatud avaldised brauseris ei tööta, seega ei tohiks selliseid avaldisi Accessi veebiandmebaasis kasutada. Tõrketeateid ei kuvata – avaldis lihtsalt ei tööta.
i ja OR tehtemärkide &ANDabil saab luua serveris täiendavaid pesastustasemeid, mis Accessi klientrakenduses ei kajastu. Näiteks avaldis pole avaldisekoosturis pesastatud, kuid SharePointis muutub see avaldiseks "a" & "b" & "c"concatenate.Db("a", concatenate.Db("b", "c") ). Selline teisendus loob ühe pesastamistaseme. Mitme järjestikuse &i või ANDOR tehtemärgi kasutamine ühes avaldises võib põhjustada serveri pesastuspiirangu 65 ületamise, mis tähendab, et avaldis brauseris ei tööta.
Avaldisekoosturi kasutamineSissejuhatus avaldistesseAvaldise koostamineAvaldiste näited