Šiame straipsnyje pateikiama daug reiškinių pavyzdžių „Access“. Reiškinys yra matematinių ar loginių operatorių, konstantų, funkcijų, lentelės laukų, valdiklių ir ypatybių derinys, pagal kurį apskaičiuojama viena reikšmė. Reiškinius galite naudoti „Access“ norėdami apskaičiuoti reikšmes, tikrinti duomenis ir nustatyti numatytąją reikšmę.
Šiame straipsnyje
Formos ir ataskaitos
Šiame skyriuje lentelėse pateikiami reiškinių, kurie apskaičiuoja formoje ar ataskaitoje esančio valdiklio reikšmę, pavyzdžiai. Jei norite sukurti skaičiavimų valdiklį, turite įvesti reiškinį į valdiklio ypatybę Valdiklio šaltinis, o ne į lentelės lauką ar užklausą.
Pastaba Jūs taip pat galite naudoti reiškinius formoje arba ataskaitoje, kai paryškinate duomenis naudodami sąlyginį formatavimą.
Teksto operacijos
Kitoje lentelėje nurodyti reiškiniai naudoja & (ampersendo) ir + (pliuso) operatorius, kad sujungtų teksto eilutes, įtaisytąsias funkcijas, kurios valdo teksto eilutę, arba kitaip valdytų tekstą ir sukurtų skaičiavimų valdiklį.
Reiškinys |
Rezultatas |
---|---|
="N/A" |
Rodoma N/A. |
=[FirstName] & " " & [LastName] |
Rodomos reikšmės, kurios yra lentelės laukuose, pavadintuose Vardas ir Pavardė. Šiame pavyzdyje operatorius & naudojamas laukui Vardas, tarpo simboliui (kabutėse) ir laukui Pavardė sujungti. |
=Left([ProductName], 1) |
Naudojama funkcija Left, norint parodyti lauko arba valdiklio, pavadinto Produkto pavadinimas, pirmąjį reikšmės simbolį. |
=Right([AssetCode], 2) |
Naudojama funkcija Right, norint parodyti lauko arba valdiklio, pavadinto Turto kodas, paskutinius 2 reikšmės simbolius. |
=Trim([Address]) |
Naudojama funkcija Trim, norint parodyti valdiklio Adresas reikšmę pašalinus visus pradžios ar pabaigos tarpus. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Naudojama funkcija IIf, norint parodyti valdiklių Miestas ir Pašto indeksas reikšmes, jei valdiklio Regionas reikšmė yra „Null“; priešingu atveju parodomos valdiklių Miestas, Regionas ir Pašto indeksas reikšmės, atskirtos tarpais. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
Naudojamas operatorius + ir „Null“ platinimas, norint parodyti valdiklių Miestas ir Pašto indeksas reikšmes, jei lauko ar valdiklio Regionas reikšmė yra „Null“; priešingu atveju parodomos laukų ar valdiklių Miestas, Regionas ir Pašto indeksas reikšmės, atskirtos tarpais. „Null“ platinimas reiškia, kad jei kuris nors reiškinio komponentas yra „Null“, visas reiškinys taip pat yra „Null“. Operatorius + palaiko neapibrėžtos reikšmės platinimą; operatorius & nepalaiko. |
Antraštės ir poraštės
Norėdami formose ar ataskaitose rodyti ar spausdinti puslapių numerius, naudojatės ypatybėmis Puslapis ir Puslapiai. Ypatybės Puslapis ir Puslapiai yra pasiekiamos tik spausdinant arba spaudinio peržiūroje, taigi jos nerodomos formos ar ataskaitos ypatybių lape. Paprastai šiomis ypatybėmis naudojatės įkėlę teksto lauką formos ar ataskaitos antraštės arba poraštės sekcijoje kartu su reiškiniu, kurio pavyzdžiai pateikti tolesnėje lentelėje.
Daugiau informacijos apie tai, kaip formose ir ataskaitose naudoti antraštes ir poraštes, rasite straipsnyje Puslapių numerių įterpimas į formą arba ataskaitą.
Reiškinys |
Rezultatas |
---|---|
=[Page] |
1 |
="Page " & [Page] |
Puslapis 1 |
="Page " & [Page] & " of " & [Pages] |
Puslapis 1 iš 3 |
=[Page] & " of " & [Pages] & " Pages" |
1 iš 3 puslapių |
=[Page] & "/" & [Pages] & " Pages" |
1/3 puslapių |
=[Country/region] & " - " & [Page] |
UK – 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
Išspausdinta: 2017-12-31 |
Aritmetinės operacijos
Galite naudoti reiškinius norėdami įtraukti, atimti, dauginti ir dalyti reikšmes, esančias dviejuose ar daugiau laukų ar valdiklių. Taip pat reiškinius galite naudoti norėdami atlikti aritmetines operacijas su datomis. Tarkime, kad turite lentelės Data/laikas lauką, pavadintą Reikalaujama data. Lauke ar su lauku susietame valdiklyje reiškinys =[RequiredDate] - 2 apskaičiuoja datos / laiko reikšmę, gaunamą esamas reikšmes lauke Reikalaujama data paankstinus dviem dienomis.
Reiškinys |
Rezultatas |
---|---|
=[Subtotal]+[Freight] |
Laukų ar valdiklių Tarpinė suma ir Transportavimo mokestis reikšmių suma. |
=[RequiredDate]-[ShippedDate] |
Intervalas tarp laukų ar valdiklių Reikalaujama data ir Siuntimo data reikšmių. |
=[Price]*1.06 |
Lauko ar valdiklio Kaina reikšmės ir 1,06 sandauga (prideda 6 procentus prie lauko ar valdiklio Kaina reikšmės). |
=[Quantity]*[Price] |
Laukų ar valdiklių Kiekis ir Kaina reikšmių sandauga. |
=[EmployeeTotal]/[CountryRegionTotal] |
Laukų ar valdiklių Iš viso darbuotojų ir Iš viso šalies regione reikšmių dalmuo. |
Pastaba Kai reiškinyje naudojate aritmetinį operatorių (+, -, * ir /), o vieno iš valdiklių reikšmė reiškinyje yra „Null“, viso reiškinio rezultatas taip pat bus „Null“ – tai vadinama „Null“ platinimu. Jei kuris nors įrašas kuriame nors iš valdiklių, kuriuos naudojate reiškinyje, gali turėti reikšmę „Null“, galite išvengti „Null“ platinimo konvertavę „Null“ reikšmes į nulį naudodami funkciją Nz, pavyzdžiui, =Nz([Subtotal])+Nz([Freight]).
Reikšmės kituose valdikliuose
Kartais prireikia reikšmės, kuri yra kur nors kitur, pavyzdžiui, kitos formos ar ataskaitos lauke ar valdiklyje. Galite naudoti reiškinį, kad gautumėte reikšmę iš kito lauko ar valdiklio.
Šioje lentelėje pateikiami reiškinių, kuriuos galite naudoti formų skaičiavimų valdikliuose, pavyzdžiai.
Reiškinys |
Rezultatas |
---|---|
=Forms![Orders]![OrderID] |
Formos Užsakymai valdiklio Užsakymo ID reikšmė. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
Formos Užsakymai papildomoje formoje Užsakymų papildoma forma esančio valdiklio Užsakymo tarpinė suma reikšmė. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
Formos Užsakymai papildomoje formoje Užsakymų papildoma forma esančio kelių stulpelių sąrašo lauko Produkto ID trečiojo stulpelio reikšmė. (Atkreipkite dėmesį, kad 0 nurodo pirmą stulpelį, 1 nurodo antrą stulpelį ir t. t.) |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
Formos Užsakymai papildomoje formoje Užsakymų papildoma forma esančio valdiklio Kaina reikšmės ir 1,06 sandauga (prideda 6 procentus prie valdiklio Kaina reikšmės). |
=Parent![OrderID] |
Dabartinės papildomos formos pagrindinėje formoje esančio valdiklio Užsakymo ID reikšmė. |
Tolesnėje lentelėje pateikti reiškiniai parodo keletą būdų, kaip ataskaitose galima naudoti skaičiavimų valdiklius. Reiškiniai nurodo Ataskaitos ypatybę.
Reiškinys |
Rezultatas |
---|---|
=Report![Invoice]![OrderID] |
Valdiklio Užsakymo ID reikšmė ataskaitoje, vadinamoje Sąskaita. |
=Report![Summary]![Summary Subreport]![SalesTotal] |
Bendroji pardavimo suma valdiklio reikšmė papildomoje ataskaitoje, kurios pavadinimas Suvestinės papildoma ataskaita, ataskaitoje Suvestinė. |
=Parent![OrderID] |
OrderID valdiklio reikšmė pagrindinės ar pirminės ataskaitos dabartinėje papildomoje ataskaitoje. |
Count, Sum ir Average reikšmės
Norėdami apskaičiuoti vieno ar daugiau laukų ar valdiklių reikšmes, galite naudoti funkciją, vadinamą agregavimo funkcija. Pavyzdžiui, galite apskaičiuoti formos eilutės elementų grupės poraštės bendrąją grupės reikšmę ataskaitoje arba užsakymo papildomoje ataskaitoje. Taip pat galite apskaičiuoti, kiek elementų yra viename ar daugiau laukų arba apskaičiuoti vidutinę reikšmę.
Reiškinys toliau pateiktoje lentelėje parodo kelis būdus, kuriais galima naudoti funkcijas, pvz., Avg, Count ir Sum.
Reiškinys |
Aprašas |
---|---|
=Avg([Freight]) |
Naudojama Avg funkcija, kad būtų galima rodyti lentelės lauko ar valdiklio, kurio pavadinimas Transportavimo mokestis, vidutinę reikšmę. |
=Count([OrderID]) |
Naudojama Count funkcija, kad būtų galima rodyti Užsakymo ID valdiklio įrašų skaičių. |
=Sum([Sales]) |
Naudojama Sum funkcija, kad būtų galima rodyti Pardavimas valdiklio reikšmių sumą. |
=Sum([Quantity]*[Price]) |
Naudojama funkcija Sum, kad būtų rodoma kiekio ir kainos valdiklių reikšmių produkto suma. |
=[Sales]/Sum([Sales])*100 |
Rodomas pardavimo procentas, nustatomas dalijant pardavimo valdiklio reikšmę iš visų pardavimo valdiklio reikšmių sumos. Jei nustatote norimą valdiklio Format ypatybę į Percent, į reiškinius neįtraukite *100. |
Daugiau informacijos apie agregavimo funkcijų naudojimą ir bendrų reikšmių pateikimą lauke ir stulpeliuose žr. straipsniuose Duomenų sumavimas naudojant užklausą, Duomenų skaičiavimas naudojant užklausą, Bendrų stulpelių reikšmių rodymas duomenų lape naudojant eilutę Iš viso ir Bendrų stulpelių reikšmių rodymas duomenų lape.
SQL agregavimo funkcijos
Naudojate funkcijos tipą, vadinamą SQL ar domeno agregavimo funkcija, kai reikia sumuoti ar skaičiuoti reikšmes pasirinktinai. Domeną sudaro vienas arba daugiau laukų vienoje ar daugiau lentelių arba vienas ar daugiau valdiklių vienoje ar daugiau formų ar ataskaitų. Pavyzdžiui, galima suderinti reikšmes lentelės lauke su valdiklio reikšmėmis formoje.
Reiškinys |
Aprašas |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
Naudojama funkcija DLookup, kad būtų grąžinta lauko ContactName reikšmė lentelėje Tiekėjai, kai lentelės lauko Tiekėjo ID reikšmė atitinka valdiklio Tiekėjo ID reikšmę formoje Tiekėjai. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
Naudojama funkcija DLookup, kad būtų grąžinta lauko ContactName reikšmė lentelėje Tiekėjai, kai lentelės lauko Tiekėjo ID reikšmė atitinka valdiklio Tiekėjo ID reikšmę formoje Nauji tiekėjai. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
Naudojama funkcija DSum, kad būtų grąžinta lauko Užsakymo kiekis reikšmių bendra suma lentelėje Užsakymai, kur Kliento yra RATTC. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
Naudojama su DCount funkcija, kad būtų grąžintas reikšmių YES skaičius lauke Nurašytas (laukas Yes/No) lentelėje Turtas. |
Datos operacijos
Datų ir laikų sekimas yra labai svarbi duomenų bazių veikla. Pavyzdžiui, galima apskaičiuoti, kiek dienų praėjo nuo sąskaitos faktūros datos, kai buvo gautos sumos. Galima formatuoti datas ir laikus įvairiais būdais, kaip parodyta tolesnėje lentelėje.
Reiškinys |
Aprašas |
---|---|
=Date() |
Naudojama funkcija Date, kad būtų rodoma dabartinė data mm-dd-yy forma, kur mm yra mėnuo (nuo 1 iki 12), dd – diena (nuo 1 iki 31), ir yy yra paskutiniai du metų skaičiai (nuo 1980 per 2099). |
=Format(Now(), "ww") |
Naudojama funkcija Format, kad būtų rodomas dabartinės datos metų savaitės skaičius, kur ww nurodo savaitę nuo 1 iki 53. |
=DatePart("yyyy", [OrderDate]) |
Naudojama funkcija DatePart, kad būtų rodoma keturių skaitmenų metų reikšmė valdikliui Užsakymo data. |
=DateAdd("y", -10, [PromisedDate]) |
Naudojama funkcija DateAdd, kad būtų rodomas data, kuri yra 10 dienų prieš valdiklio Nustatyta data reikšmę. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
Naudojama funkcija DateDiff, kad būtų rodomas dienų skaičius, nurodantis skirtumą tarp Užsakymo data ir Išsiuntimo data valdiklių reikšmių. |
=[InvoiceDate] + 30 |
Naudojamos aritmetinės operacijos su datomis siekiant apskaičiuoti 30 dienų po datos lauke ar valdiklyje Sąskaitos data. |
Tik dviejų reikšmių sąlygos
Reiškinių pavyzdys tolesnėje lentelėje naudoja funkciją IIf, kad būtų grąžinta viena iš dviejų galimų reikšmių. Funkcijai IIf pateikiami trys argumentai: Pirmasis argumentas yra reiškinys, kuris turi grąžinti reikšmę True arba False. Antrasis argumentas yra grąžintina reikšmė, jei reiškinys yra teisingas, o trečiasis argumentas yra grąžintina reikšmė, jei reiškinys yra klaidingas.
Reiškinys |
Aprašas |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
Naudojama funkcija IIf (nedelsiant jeigu), kad būtų rodomas pranešimas Užsakymas patvirtintas, jei valdiklio Patvirtinta reikšmė yra Yes; priešingu atveju rodomas pranešimas "Order Not Confirmed." |
=IIf(IsNull([Country/region]), " ", [Country]) |
Naudojamos funkcijos IIf ir IsNull, kad būtų rodoma tuščia eilutė, jei šalies / regiono valdiklio reikšmė yra nulinė; priešingu atveju rodoma šalies/regiono valdiklio reikšmė. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Naudojamos funkcijos IIf ir IsNull, norint parodyti valdiklių Miestas ir Pašto kodas reikšmes, jei valdiklio Regionas reikšmė yra nulinė; priešingu atveju rodomos valdiklių Miestas, Regionas ir Pašto kodas laukų ar valdiklių reikšmės. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Naudojamos funkcijos IIf ir IsNull, kad būtų rodomas pranešimas „Tikrinti trūkstamas datas“, jeigu Išsiuntimo data atimties rezultatas iš Reikalaujama data yra nulinis; priešingu atveju rodomas intervalas tarp Reikalaujama data ir Išsiuntimo data valdiklių datų reikšmių. |
Užklausos ir filtrai
Šiame skyriuje pateikiami reiškinių pavyzdžiai, kuriuos galima naudoti kuriant apskaičiuotąjį lauką užklausoje arba teikiant kriterijus užklausai. Apskaičiuotasis laukas yra stulpelis užklausoje, kuris gaunamas iš reiškinio. Pavyzdžiui, galima apskaičiuoti reikšmę, sujungti teksto reikšmes, pvz., vardą ir pavardę, arba formatuoti datos dalis.
Užklausoje naudojami kriterijai, kad būtų galima apriboti įrašus, su kuriais dirbate. Pvz., galima naudoti operatorių Between, kad būtų teikiama pradžios ir pabaigos data ir ribojami užklausos rezultatai iki užsakymų, kurie buvo pateikti tarp tų datų.
Toliau pateikiami užklausose naudotinų reiškinių pavyzdžiai.
Teksto operacijos
Tolesnėje lentelėje nurodyti reiškiniai naudoja & ir + operatorius, kad sujungtų teksto eilutes, naudotų įtaisytąsias funkcijas, kurios valdo teksto eilutę, arba kitaip valdytų tekstą ir kurtų apskaičiuotąjį lauką.
Reiškinys |
Aprašas |
---|---|
FullName: [FirstName] & " " & [LastName] |
Sukuriamas laukas pavadinimu Vardas ir pavardė, rodantis reikšmes laukuose Vardas ir Pavardė, atskirtas tarpu. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
Sukuriamas laukas pavadinimu Address2, rodantis reikšmes laukuose Miestas, Regionas ir Pašto kodas, atskirtas tarpais. |
ProductInitial: Left([ProductName], 1) |
Sukuriamas laukas pavadinimu Produkto pradinis, tada naudojama funkcija Left, kad lauke Produkto pradinis būtų rodomas lauko Produkto pavadinimas reikšmės pirmasis simbolis. |
TypeCode: Right([AssetCode], 2) |
Sukuriamas laukas Tipo kodas, tada naudojama funkcija Right, kad būtų rodomi paskutiniai du lauko Turto kodas reikšmės simboliai. |
AreaCode: Mid([Phone],2,3) |
Sukuriamas laukas pavadinimu Vietovės kodas, tada naudojama funkcija Mid, kad būtų rodomi trys simboliai pradedant nuo antrojo lauko Telefonas reikšmės simbolio. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
Įvardija apskaičiuotojo lauko ExtendedPrice ir naudoja funkciją CCur, kad apskaičiuotų bendrą eilutės sumą su taikomomis nuolaidomis. |
Aritmetinės operacijos
Galite naudoti reiškinius norėdami įtraukti, atimti, dauginti ir dalyti reikšmes, esančias dviejuose ar daugiau laukų ar valdiklių. Taip pat galima atlikti aritmetines operacijas su datomis. Tarkime, kad turite lauką Data/laikas, pavadintą Reikalaujama data. Reiškinys =[RequiredDate] - 2 pateikia datos / laiko reikšmę, kuri lygi dviems dienoms prieš lauko Reikalaujama data reikšmę.
Reiškinys |
Aprašas |
---|---|
PrimeFreight: [Freight] * 1.1 |
Sukuriamas laukas Pirminis Transportavimo mokestis, tada lauke rodomi gabenimo mokesčiai plius 10 procentų. |
OrderAmount: [Quantity] * [UnitPrice] |
Sukuriamas laukas Užsakymo suma, tada rodomas laukų Kiekis ir Vieneto kaina reikšmių rezultatas. |
LeadTime: [RequiredDate] - [ShippedDate] |
Sukuriamas laukas pavadinimu Gamybos laikas, tada rodomas skirtumas tarp laukų Reikalaujama data ir Išsiuntimo data reikšmių. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
Sukuriamas laukas Bendrosios atsargos, tada rodoma laukų Vienetai sandėlyje ir Vienetai užsakyme reikšmių suma. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Sukuriamas laukas Transportavimo mokesčio procentas, tada rodomas kiekvienos tarpinės sumos gabenimo mokesčių procentas. Šis reiškinys naudoja funkciją Sum, kad apskaičiuotų bendrąsias reikšmes lauke Transportavimo mokestis, tada dalija bendrąsias reikšmes iš lauko Tarpinės sumos reikšmių sumos. Norėdami naudoti šį reiškinį, turite konvertuoti pasirinktą užklausą į užklausą Bendrosios sumos, nes būtina naudoti eilutę Total dizaino tinklelyje ir nustatyti šio lauko langelį Total į Expression. Daugiau informacijos apie užklausos Total kūrimą žr. straipsnyje Duomenų sumavimas naudojant užklausą. Jei lauko ypatybę Format nustatote į Percent, neįtraukite *100. |
Daugiau informacijos apie agregavimo funkcijų naudojimą ir bendrų reikšmių pateikimą lauke ir stulpeliuose žr. straipsniuose Duomenų sumavimas naudojant užklausą, Duomenų skaičiavimas naudojant užklausą, Bendrų stulpelių reikšmių rodymas duomenų lape naudojant eilutę Iš viso ir Bendrų stulpelių reikšmių rodymas duomenų lape.
Datos operacijos
Beveik visos duomenų bazės išsaugo ir seka datas ir laikus. Programoje „Access“ datos ir laikai naudojami nustatant datos ir laiko laukus lentelėse į duomenų tipą Date/Time. „Access“ gali atlikti aritmetinius datų skaičiavimus; pavyzdžiui, galima apskaičiuoti, kiek dienų praėjo nuo sąskaitos faktūros datos, kai buvo gautos sumos.
Reiškinys |
Aprašas |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
Sukuriamas laukas pavadinimu Vėlavimo laikas, tada naudojama funkcija DateDiff, kad būtų rodomas dienų skaičius tarp užsakymo datos ir siuntimo datos. |
YearHired: DatePart("yyyy",[HireDate]) |
Sukuriamas laukas Samdymo metai, tada naudojama funkcija DatePart, kad būtų rodomi kiekvieno darbuotojo priėmimo į darbą metai. |
MinusThirty: Date( )- 30 |
Sukuriamas laukas Minus trisdešimt, tada naudojama funkcija Date, kad būtų rodoma data 30 dienų prieš dabartinę datą. |
SQL agregavimo funkcijos
Reiškiniai toliau pateiktoje lentelėje naudoja SQL (struktūrinių užklausų kalba) funkcijas, agreguojančias ar apibendrinančias duomenis. Šios funkcijos (pvz., Sum, Count ir Avg) dažnai minimos kaip agregavimo funkcijos.
Be agregavimo funkcijos, „Access“ taip pat teikia domeno agregavimo funkcijas, kurias galima naudoti norint sumuoti arba pasirinktinai skaičiuoti reikšmes. Pavyzdžiui, galima skaičiuoti tik reikšmes, patenkančias į tam tikrą diapazoną, arba ieškoti reikšmės kitoje lentelėje. Domeno agregavimo funkcijų rinkinys apimaDSum funkciją, DCount funkciją ir DAvg funkciją.
Norint apskaičiuoti bendrąsias sumas, dažnai būtina kurti bendrųjų sumų užklausą. Pavyzdžiui, jei norite daryti suvestinę pagal grupę, būtina naudoti užklausą Bendrosios sumos. Jei norite įjungti užklausos Bendrosios sumos užklausos dizaino tinklelyje, spustelėkite Bendrosios sumos meniu Rodinys.
Reiškinys |
Aprašas |
---|---|
RowCount: Count(*) |
Sukuriamas laukas RowCount, tada naudojama funkcija Count, kad būtų suskaičiuotas užklausos įrašų skaičius, įskaitant įrašus su nuliniais (tuščiais) laukais. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Sukuriamas laukas Transportavimo mokesčio procentas, tada skaičiuojamas gabenimo mokesčių procentas kiekvienoje tarpinėje sumoje dalijant reikšmių sumą lauke Transportavimo mokestis iš lauko Tarpinės sumos reikšmių sumos. (Šiame pavyzdyje naudojama funkcija Sum.) Būtina naudoti šį reiškinį su užklausa Bendrosios sumos. Jei lauko ypatybę Format nustatote į Percent, neįtraukite *100. Daugiau informacijos apie užklausos Total kūrimą žr. straipsnyje Duomenų sumavimas naudojant užklausą. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
Sukuriamas laukas Transportavimo mokesčio vidurkis, tada naudojama funkcija DAvg, kad būtų apskaičiuota vidutinė gabenimo suma visiems užsakymams, įtrauktiems į užklausą Bendrosios sumos. |
Laukai su trūkstamais duomenimis
Čia parodyti reiškiniai veikia su laukais, kuriuose galimai trūksta informacijos, pvz., laukai, kuriuose yra nulinių (nežinomų ar neapibrėžtų) reikšmių. Dažnai susiduriate su nulinėmis reikšmėmis, pvz., nežinoma naujo produkto kaina ar reikšme, kurią į užsakymą pamiršo įtraukti bendradarbis. Galimybė rasti ir apdoroti nulines reikšmes gali būti kritinė duomenų bazių operacijų dalis, o reiškiniai tolesnėje lentelėje nurodo kelis bendruosius nulinių reikšmių tvarkymo būdus.
Reiškinys |
Aprašas |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
Sukuriamas laukas pavadinimu DabartinėŠalisRegionas, tada naudojamos funkcijos IIf ir IsNull, kad būtų rodoma tuščia eilutė tame lauke, kai lauke ŠalisRegionas yra nulinė reikšmė; priešingu atveju, rodomas lauko ŠalisRegionas turinys. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Sukuriamas laukas pavadinimu Gamybos laikas, tada naudojamos funkcijos IIf ir IsNull, kad būtų rodomas pranešimas „Tikrinti, ar yra trūkstamų datų“, jeigu reikšmė lauke Reikalaujama data arba Išsiuntimo data yra nulinė; priešingu atveju rodomas datos skirtumas. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
Sukuriamas laukas pavadinimu Šešių mėnesių pardavimas, tada rodoma reikšmių 1 ktv. pardavimas ir 2 ktv. pardavimas laukuose bendra suma ir pradžių naudojant funkciją Nz, kad būtų galima konvertuoti nulines reikšmes į nulį. |
Apskaičiuotieji laukai su antrinėmis užklausomis
Galima naudoti įdėtąją užklausą, taip pat vadinamą antrine užklausa, kad būtų sukurtas apskaičiuotasis laukas. Toliau pateiktoje lentelėje reiškinys yra vienas iš apskaičiuotojo lauko pavyzdžių, gaunamų iš antrinės užklausos.
Reiškinys |
Aprašas |
---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
Sukuriamas laukas pavadinimu Kategorija, tada rodomas Kategorijos pavadinimas, jeigu Kategorijos ID iš lentelės Kategorijos yra toks pats kaip kategorijos ID iš lentelės Produktai. |
Teksto reikšmių atitikimas
Šios lentelės reiškinių pavyzdžiai nurodo kriterijus, atitinkančius visą teksto reikšmę arba jos dalį.
Laukas |
Reiškinys |
Aprašas |
---|---|---|
Išsiuntimo miestas |
"London" |
Rodo užsakymus, išsiųstus į Londoną. |
Išsiuntimo miestas |
"London" Or "Hedge End" |
Naudojamas operatorius Or, kad būtų rodomi užsakymai, išsiųsti į Londoną ar Hedžendą. |
Išsiuntimo šalis regionas |
In("Canada", "UK") |
Naudojamas operatorius In, kad būtų rodomi užsakymai, išsiųsti į Kanadą ar JK. |
Išsiuntimo šalis regionas |
Not "USA" |
Naudojamas operatorius Not, kad būtų rodomi užsakymai, išsiųsti į šalis / regionus, kurie yra ne JAV. |
ProduktoPavadinimas |
Not Like "C*" |
Naudojamas operatorius Not ir pakaitos simbolis *, kad būtų rodomi produktai, neprasidedantys raide C. |
CompanyName |
>="N" |
Rodomi užsakymai, išsiųsti įmonėms, kurių pavadinimai prasideda raidėmis nuo N iki Z. |
Produkto kodas |
Right([ProductCode], 2)="99" |
Naudojama funkcija Right, kad būtų rodomi užsakymai su ProductCode reikšmėmis, kurios baigiasi 99. |
Išsiuntimo pavadinimas |
Like "S*" |
Rodomi užsakymai, išsiųsti klientams, kurių vardai prasideda raide S. |
Datos kriterijų atitikimas
Reiškiniai toliau pateiktoje lentelėje nurodo datų ir susijusių funkcijų naudojimą kriterijų reiškiniuose. Daugiau informacijos apie datų reikšmių įvedimą ir naudojimą žr. straipsnyje Datos ir laiko lauko formatavimas.
Laukas |
Reiškinys |
Aprašas |
---|---|---|
Siuntimo_data |
#2/2/2017# |
Rodomi užsakymai, išsiųsti 2017 m. vasario 2 d. |
Siuntimo_data |
Date() |
Rodomi šiandien išsiųsti užsakymai. |
ReikalaujamaData |
Between Date( ) And DateAdd("m", 3, Date( )) |
Naudojamas operatorius Between...And funkcijos DateAdd ir Date, kad būtų rodomi užsakymai reikalaujami tarp šiandienos datos ir trijų mėnesių nuo šiandienos datos. |
UžsakymoData |
< Date( ) - 30 |
Naudojama funkcija Date, kad būtų rodomi senesni negu 30 dienų užsakymai. |
UžsakymoData |
Year([OrderDate])=2017 |
Naudojama funkcija Year, kad būtų rodomi užsakymai, kurių užsakymo data 2017 m. |
UžsakymoData |
DatePart("q", [OrderDate])=4 |
Naudojama funkcija DatePart, kad būtų rodomi ketvirto metų ketvirčio užsakymai. |
UžsakymoData |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
Naudojamos funkcijos DateSerial, Year ir Month, kad būtų rodomi paskutinės kiekvieno mėnesio dienos užsakymai. |
UžsakymoData |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
Naudojamos funkcijos Year ir Month ir operatorius And, kad būtų rodomi dabartinių metų ir mėnesio užsakymai. |
Siuntimo_data |
Between #1/5/2017# And #1/10/2017# |
Naudojamas operatorius Between...And , kad būtų rodomi užsakymai, išsiųsti ne anksčiau 2017 m. sausio 5 d. ir ne vėliau 2017 m. sausio 10 d. |
ReikalaujamaData |
Between Date( ) And DateAdd("M", 3, Date( )) |
Naudojamas operatorius Between...And, kad būtų rodomi užsakymai reikalaujami tarp šiandienos datos ir trijų mėnesių nuo šiandienos datos. |
Gimimo data |
Month([BirthDate])=Month(Date()) |
Naudojamos funkcijos Month ir Date, kad būtų rodomi darbuotojai, kurių gimimo dienos yra šį mėnesį. |
Trūkstamų duomenų radimas
Reiškiniai toliau pateiktoje lentelėje veikia su laukais, kuriuose gali trūkti informacijos – tais, kuriuose gali būti nulinių reikšmių ar nulinio ilgio eilučių. Nulinė reikšmė nurodo informacijos nebuvimą; jis nenurodo nulio ar kokios nors kitos reikšmės. „Access“ palaiko šią trūkstamos informacijos idėją, nes ši koncepcija yra labai svarbi duomenų bazės vientisumui. Realiame pasaulyje dažnai trūksta informacijos, net jei tik laikinai (pvz., kol kas nenustatyta naujo produkto kaina). Todėl duomenų bazė, teikianti realaus pasaulio modelį, pvz., verslo įmonės, turėtų sugebėti įrašyti informaciją kaip trūkstamą. Galima naudoti funkciją IsNull, kad būtų nustatoma, ar laukas arba valdiklis apima nulinę reikšmę, taip pat galima naudoti funkciją Nz nulinės reikšmės konvertavimui į nulį.
Laukas |
Reiškinys |
Aprašas |
---|---|---|
SiuntimoRegionas |
Is Null |
Rodo klientų, kurių lauke Išsiuntimo regionas yra nulis (trūksta), užsakymus. |
SiuntimoRegionas |
Is Not Null |
Rodo klientų, kurių lauke Išsiuntimo regionas yra reikšmė, užsakymus. |
Faksas |
"" |
Rodomi klientų, kurie neturi fakso aparato, užsakymus. Tai nurodo nulinio ilgio eilutės reikšmė lauke Faksas vietoje nulio (trūkstamos) reikšmės. |
Įrašo šablonų atitikimas su LIKE
Operatorius Like teikia didelį lankstumą bandant ieškoti eilučių, sekančių šabloną, nes galima naudoti pakaitos simboliu Like ir apibrėžti šablonus, kurių ieškos „Access“. Pvz., pakaitos simbolis * (žvaigždutė) atitinka bet kurio tipo simbolių seką, todėl galima lengvai rasti visus vardus, prasidedančius konkrečia raide. Pavyzdžiui, galima naudoti reiškinį Like "S*" ir rasti visus vardus, prasidedančius raide S. Daugiau informacijos ieškokite straipsnyje Operatorius Like.
Laukas |
Reiškinys |
Aprašas |
---|---|---|
Išsiuntimo pavadinimas |
Like "S*" |
Randami visi įrašai lauke Išsiuntimo pavadinimas, kurie prasideda raide S. |
Išsiuntimo pavadinimas |
Like "*Imports" |
Randami visi įrašai lauke Išsiuntimo pavadinimas, kurie baigiasi žodžiu „Imports“. |
Išsiuntimo pavadinimas |
Like "[A-D]*" |
Randami visi įrašai lauke Išsiuntimo pavadinimas, kurie prasideda raide A, B, C arba D. |
Išsiuntimo pavadinimas |
Like "*ar*" |
Randami visi įrašai lauke Išsiuntimo pavadinimas, kurie apima raidžių junginį „ar“. |
Išsiuntimo pavadinimas |
Like "Maison Dewe?" |
Randami visi įrašai lauke Išsiuntimo pavadinimas, kuriuose yra „Maison“ pirmojoje reikšmės dalyje ir penkių raidžių eilutė, kurios pirmosios keturios raidės yra „Dewe“, o paskutinė raidė yra nežinoma. |
Išsiuntimo pavadinimas |
Not Like "A*" |
Randami visi įrašai lauke Išsiuntimo pavadinimas, kurie neprasideda raide A. |
Eilučių su SQL agregavimais atitikimas
SQL ar domeno agregavimo funkcija naudojama, kai reikia pasirinktinai sumuoti ar skaičiuoti reikšmes arba nustatyti reikšmių vidurkį. Pvz., galima skaičiuoti tik tas reikšmes, kurios patenka į tam tikrą diapazoną, arba kurios įvertinamos kaip Yes. Kartais gali tekti ieškoti reikšmės kitoje lentelėje, kad būtų galima ją rodyti. Toliau pateiktoje lentelėje esančiuose reiškiniuose naudojamos domeno agregavimo funkcijos, kad būtų galima atlikti skaičiavimus su reikšmių rinkiniu ir naudoti rezultatą kaip užklausos kriterijus.
Laukas |
Reiškinys |
Aprašas |
---|---|---|
Transportavimo mokestis |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
Naudojamos funkcijos DStDev ir DAvg, kad būtų rodomi visi užsakymai, kurių gabenimo išlaidos viršijo vidurkį ir standartinį gabenimo išlaidų nuokrypį. |
Kiekis |
> DAvg("[Quantity]", "[Order Details]") |
Naudojama funkcija DAvg, kad būtų rodomi produktai, užsakyti kiekiais, viršijančiais vidutinį užsakymo kiekį. |
Laukų su antrinėmis užklausomis atitikimas
Galima naudoti antrinę užklausą, dar vadinamą įdėtąją užklausą, kad būtų skaičiuojama reikšmė, kuri bus naudojama kaip kriterijus. Toliau pateiktoje lentelėje reiškinio pavyzdžiai atitinka eilutes, pagrįstas antrinių užklausų pateiktais rezultatais.
Laukas |
Reiškinys |
Jame rodoma |
---|---|---|
Vieneto kaina |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
Produktai, kurių kaina yra tokia pati, kaip anyžių sirupo kaina. |
Vieneto kaina |
>(SELECT AVG([UnitPrice]) FROM [Products]) |
Produktai, kurių vieneto kaina yra didesnė už vidutinę. |
Salary |
> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
Kiekvieno pardavėjo atlyginimas, jei atlyginimas yra didesnis negu darbuotojų, kurių pareigose nurodyta „vadovas“ arba „viceprezidentas“. |
OrderTotal: [Vieneto kaina] * [Kiekis] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
Užsakymai su bendromis sumomis, kurios yra didesnės, negu vidutinė užsakymo reikšmė. |
Naujinimo užklausos
Naujinimo užklausos naudojamos modifikuojant duomenis viename ar daugiau esamų duomenų bazės laukų. Pavyzdžiui, galima keisti reikšmes arba visiškai jas panaikinti. Toliau esančioje lentelėje pateikiami keli reiškinių naudojimo naujinimo užklausose būdai. Galima naudoti šiuos reiškinius eilutėje Update To užklausos dizaino tinklelyje tam laukui, kurį norite atnaujinti.
Daugiau informacijos apie naujinimo užklausų kūrimą rasite straipsnyje Naujinimo užklausų kūrimas ir vykdymas.
Laukas |
Reiškinys |
Rezultatas |
---|---|---|
Pavadinimas |
"Salesperson" |
Teksto reikšmė keičiama į Pardavėjas. |
Projekto Pradžia |
#8/10/17# |
Keičiama datos reikšmė į 2017 rugpjūčio 7 d. |
Atšaukta |
Yes |
No reikšmė lauke Taip/Ne pakeičiama į Taip. |
Dalies numeris |
"PN" & [PartNumber] |
Įtraukia „PN“ į kiekvieno konkretaus dalies numerio pradžią. |
Eilutės elementų suma |
[UnitPrice] * [Quantity] |
Apskaičiuoja produkto Vieneto kainą ir kiekį. |
Transportavimo mokestis |
[Freight] * 1.5 |
Padidina 50 procentų transportavimo mokestį. |
Pardavimai |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
Kai Produkto ID reikšmės dabartinėje lentelėje atitinka Produkto ID reikšmes užsakymo informacijos lentelėje. atnaujinamos pardavimo bendrosios sumos atsižvelgiant į kiekio ir vieneto kainos rezultatą. |
SiuntimoPaštoIndeksas |
Right([ShipPostalCode], 5) |
Pašalinami kairiausi simboliai paliekant penkis dešiniausius simbolius. |
Vieneto kaina |
Nz([UnitPrice]) |
Nulinė (neapibrėžta arba nežinoma) reikšmė keičiama į nulį (0) lauke Vieneto kaina. |
SQL užklausos
Struktūrinių užklausų kalba arba SQL yra „Access“ naudojama užklausų kalba. Visas užklausas, kurias kuriate užklausos dizaino rodinyje, taip pat galima išreikšti naudojant SQL. Norėdami peržiūrėti užklausos SQL sakinį, spustelėkite SQL rodinys meniu Rodinys. Tolesnėje lentelėje pateikti SQL sakinių pavyzdžiai, kuriuose naudojamas reiškinys.
SQL užklausa, naudojanti reiškinį |
Rezultatas |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
Rodomos reikšmės laukuose Vardas ir Pavardė darbuotojams, kurių pavardė yra Danseglio. |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
Rodomos reikšmės laukuose Produkto ID ir Produkto pavadinimas įrašų lentelėje Produktai, kurioje Kategorijos ID reikšmė atitinka Kategorijos ID reikšmę, nurodytą formoje Nauji produktai. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
Apskaičiuojama vidutinė išplėsta kaina užsakymams, kuriems reikšmė lauke Išplėsta Kaina yra didesnė negu 1 000, ir ji rodoma lauke, kurio pavadinimas Vidutinė išplėsta kaina. |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
Lauke Produkto ID skaičius rodomas bendras kategorijos produktų su daugiau negu 10 produktų, skaičius. |
Lentelių reiškiniai
Du labiausiai paplitę reiškinių naudojimo lentelėse būdai yra numatytosios reikšmės priskyrimas ir tinkamumo taisyklės kūrimas.
Lauko numatytosios reikšmės
Kai kuriate duomenų bazę, galite priskirti lauko arba valdiklio numatytąją reikšmę. „Access“ teikia numatytąją reikšmę, kai sukuriamas naujas įrašas su lauku arba sukuriamas objektas, kuriame yra valdiklis. Tolesnėje lentelėje pateikti reiškiniai nurodo lauko ar valdiklio numatytųjų reikšmių pavyzdžius. Jei valdiklis yra susietas su lentelės lauku, o lauke yra numatytoji reikšmė, valdiklio numatytoji reikšmė yra pirmesnė.
Laukas |
Reiškinys |
Numatytoji lauko reikšmė |
---|---|---|
Quantity |
1 |
1 |
Regionas |
"MT" |
MT |
Regionas |
"New York, N.Y." |
Niujorkas (NY) (Atkreipkite dėmesį, kad turite apskliausti reikšmę kabutėse, jei ji apima skyrybos ženklus). |
Faksas |
"" |
Nulinio ilgio eilutė nurodanti, kad pagal numatytuosius nustatymus šis laukas turi būti tuščias ir jame negali būti nulinės reikšmės |
Užsakymo data |
Date( ) |
Šiandienos data |
Terminas |
Date() + 60 |
Data 60 dienų į priekį nuo šiandien |
Lauko tikrinimo taisyklės
Galima sukurti tinkamumo taisyklę laukui ar valdikliui naudojant reiškinį. „Access“ taiko taisyklę, kai duomenys įvedami į lauką ar valdiklį. Jei norite kurti tinkamumo taisyklę, modifikuojate lauko ar valdiklio ypatybę Tinkamumo taisyklė. Taip pat reikėtų atsižvelgti į parametro Tikrinimo tekstas ypatybę, kuri apima tekstą, kurį „Access“ rodo pažeidus tinkamumo taisyklę. Jei nenustatysite Tikrinimo teksto ypatybės, „Access“ rodys numatytąjį klaidos pranešimą.
Pavyzdžiuose toliau pateiktoje lentelėje parodyti tinkamumo taisyklės reiškiniai ypatybei Tinkamumo taisyklė ir susietas tekstas ypatybei Tikrinimo tekstas.
Tinkamumo taisyklės ypatybė |
Tikrinimo teksto ypatybė |
---|---|
<> 0 |
Įveskite ne nulinę reikšmę. |
0 Or > 100 |
Reikšmė turi būti 0 arba didesnė už 100. |
Like "K???" |
Reikšmė turi būti keturi simboliai, pradedant raide K. |
< #1/1/2017# |
Įveskite datą, ankstesnę negu 2017-01-01. |
>= #1/1/2017# And < #1/1/2008# |
Data turi būti 2017 metais. |
Daugiau informacijos apie duomenų tikrinimą žr. straipsnyje Tikrinimo taisyklės kūrimas, kad būtų galima tikrinti lauko duomenis.
Makrokomandų reiškiniai
Kartais pagal makrokomandą gali reikėti atlikti veiksmą arba keletą veiksmų tik tada, kai tam tikra sąlyga yra teisinga. Tarkime, norite, kad veiksmas būtų vykdomas tik tada, kai teksto lauko Skaitiklis reikšmė yra 10. Išraišką naudojate norėdami apibrėžti sąlygą bloke Jei:
[Counter]=10
Kaip ir ypatybė Tinkamumo taisyklė , reiškinys bloke Jei yra sąlyginė išraiška. Jį būtina išspręsti į True arba False reikšmę. Veiksmas vyksta tik kai sąlyga yra teisinga.
Naudokite šį reiškinį veiksmui atlikti |
If |
---|---|
[City]="Paris" |
Paryžius yra Miestas reikšmė formos lauke, iš kurios buvo paleista makrokomanda. |
DCount("[OrderID]", "Orders") > 35 |
Lentelės Užsakymai lauke Užsakymo ID yra daugiau nei 35 įrašai. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
Lentelėje Užsakymo informacija yra daugiau nei trys įrašai, kuriems lentelės laukas Užsakymo ID atitinka formos Užsakymai lauką Užsakymo ID. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
Reikšmė Siuntimo data lauko formoje, iš kurios paleidžiama makrokomanda, yra ne ankstesnė negu 2017-vas-2 ir ne vėlesnė negu 2017-kov-2. |
Forms![Products]![UnitsInStock] < 5 |
Vienetai sandėlyje lauko reikšmė formoje Produktai yra mažesnė negu 5. |
IsNull([FirstName]) |
Formos Vardas reikšmė, iš kurios paleidžiama makrokomanda, yra nulinė (neturi reikšmės). Šis reiškinys lygus [Vardas] Yra nulinis. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
Formos lauko Šalis regionas reikšmė, iš kurios paleidžiama makrokomanda, yra JK, o lauko Visi užsakymai reikšmė formoje Bendroji pardavimo suma yra didesnė negu 100. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
Formos lauko Šalis regionas reikšmė, iš kurios paleidžiama makrokomanda, yra Prancūzija, Italija arba Ispanija, o pašto kodas nėra 5 simbolių ilgio. |
MsgBox("Confirm changes?",1)=1 |
Spustelėkite Gerai dialogo lange, kurį rodo funkcija MsgBox. Jei spustelėsite Atšaukti dialogo lange, „Access“ nepaisys veiksmo. |