Lausekkeita voi käyttää Microsoft Accessissa monenlaisten tehtävien suorittamiseen, kuten matemaattisten laskutoimitusten suorittamiseen, tekstin yhdistämiseen tai poimimiseen sekä tietojen kelpoisuuden tarkistamiseen. Seuraavassa kerrotaan tärkeitä perusasioita lausekkeista — siitä milloin niitä käytetään, mistä osista ne koostuvat ja miten ne eroavat Microsoft Excelin kaavoista.
Tämän artikkelin sisältö
Yleistä lausekkeista
Ajattele näin: kun haluat Accessin tekevän jotakin, sinun on puhuttava sen kieltä. Oletetaan, että haluat pyytää Accessia katsomaan Asiakkaat-taulukon BirthDate-kenttää ja kertomaan asiakkaan syntymävuoden. Voit kirjoittaa tämän lausekkeen muodossa:
DatePart("yyyy",[Customers]![BirthDate])
Tämä lauseke koostuu DatePart-funktiosta ja kahdesta argumentin arvosta, jotka ovat: "yyyy" ja [Customers]![BirthDate].
Tutkitaan tätä lauseketta tarkemmin.
1 DatePart on funktio, joka tutkii päivämäärän ja palauttaa tietyn osan. Tässä tapauksessa käytetään kahta ensimmäistä argumenttia.
2 Aikaväliargumentti kertoo Accessille, mikä päivämäärän osa palautetaan. Tässä tapauksessa "yyyy" kertoo Accessille, että haluat sen palauttavan vain vuosiosan.
3 Päivämääräargumentti kertoo Accessille, mistä päivämääräarvoa on etsittävä. Tässä tapauksessa [Customers]![BirthDate] pyytää Accessia etsimään päivämäärää Asiakkaat-taulukon BirthDate-kentästä.
Lausekkeiden käyttämistapoja
Lausekkeiden avulla voit:
-
Laskea arvoja, jotka eivät sisälly suoraan sinulla oleviin tietoihin. Voit laskea arvoja taulukoiden ja kyselyiden kentissä sekä lomakkeiden ja raporttien ohjausobjekteissa.
-
Määrittää oletusarvon kentän arvolle taikka lomakkeen tai raportin ohjausobjektille. Nämä oletusarvot ilmestyvät aina, kun avaat taulukon, lomakkeen tai raportin.
-
Luoda kelpoisuussääntöjä, joilla rajoitetaan sitä, mitä arvoja käyttäjät voivat syöttää kenttään tai ohjausobjektiin.
-
Määrittää kyselyn ehtoja, jotka rajoittavat tulokset haluttuun alijoukkoon.
Laskea arvoja
Yksi yleisimmistä tavoista käyttää Accessin lausekkeita on laskea arvoja, jotka eivät ole suoraan olemassa käsiteltävissä tiedoissa. Tällaisen laskutoimituksen tuloksena syntyvää taulukon saraketta tai kyselyä kutsutaan lasketuksi kentäksi. Voit luoda lasketun kentän, jossa yhdistyy kaksi tai useampi taulukkokenttä. Monet taulukot säilyttävät esimerkiksi etu- ja sukunimet eri kentissä. Jos haluat yhdistää etu- ja sukunimet ja näyttää ne sitten yhtenä kenttänä, voit luoda lasketun kentän taulukkoon tai kyselyyn:
[FirstName] & " " & [LastName].
Tässä kentässä et-merkki (&) yhdistää FirstName-kentän arvon, välilyönnin (lainausmerkkien välissä oleva välilyönti) ja LastName-kentän arvon.
Oletusarvon määrittäminen
Lausekkeiden avulla voit määrittää Accessissa myös oletusarvon taulukossa olevalle kentälle tai ohjausobjektille. Jos esimerkiksi haluat määrittää päivämääräkentän oletusarvoksi kuluvan päivämäärän, kirjoita kentän Oletusarvo-ominaisuusruutuun:
Date()
Kelpoisuussäännön luominen
Voit käyttää lauseketta myös kelpoisuussäännön määrittämiseen. Voit käyttää kelpoisuussääntöä esimerkiksi ohjausobjektin tai taulukon kentässä edellyttääksesi, että syötetty päivämäärä on suurempi tai yhtä suuri kuin kuluva päivämäärä. Siinä tapauksessa asetat Kelpoisuussääntö-ominaisuusruudun arvoksi:
>= Date()
Kyselyn ehtojen määrittäminen
Voit käyttää lauseketta myös kyselyn ehtojen asettamiseen. Oletetaan esimerkiksi, että haluat nähdä tiedot tuotemyynnistä tiettynä ajanjaksona toimitettujen tilausten osalta. Voit syöttää ehdot päivämääräalueen määrittämiseksi, jolloin Access palauttaa vain ehtoja vastaavat rivit. Lauseke voi näyttää esimerkiksi seuraavanlaiselta:
Between #1/1/2017# And #12/31/2017#
Kun lisäät kyselyyn ehtoja ja sitten suoritat kyselyn, kysely palauttaa vain ne arvot, jotka vastaavat määritettyjä päivämääriä.
Esimerkkejä lausekkeista
Seuraavassa taulukossa luetellaan esimerkkejä Accessin lausekkeista ja niiden tavanomaisesta käytöstä:
Lauseke |
Käyttötarkoitus |
---|---|
=[RequiredDate]-[ShippedDate] |
Laskee raportin kahden muokkausruutuohjausobjektin (Tarvepäivä ja Toimituspäivä) päivämääräarvojen erotuksen. |
Date() |
Asettaa päivämäärä- ja aikakentän oletusarvoksi kuluvan päivän päivämäärän. |
Between #1/1/2017# And #12/31/2017# |
Käytetään syötettäessä ehtoja kyselyn päivämäärä- ja aikakenttää varten. |
=[Orders Subform].Form!OrderSubtotal |
Palauttaa Tilaukset-lomakkeen Tilaukset-alilomakkeen TilauksenVälisumma-ohjausobjektin arvon. |
>0 |
Määrittää kelpoisuussäännön taulukon numeeriselle kentälle – käyttäjien on syötettävä nollaa suurempia arvoja. |
Joidenkin lausekkeiden alussa on yhtä suuri kuin (=) -operaattori mutta ei kaikkien. Kun haluat laskea lomakkeen tai raportin ohjausobjektin arvon, aloita lauseke käyttämällä =-operaattoria. Esimerkiksi jos kirjoitat lausekkeen kyselyyn tai kentän tai ohjausobjektin Oletusarvo- tai Kelpoisuussääntö-ominaisuuteen, älä käytä =-operaattoria, ellet lisää lauseketta taulukon tekstikenttään. Joissakin tapauksissa, esimerkiksi lisättäessä lausekkeita kyselyihin, Access poistaa =-operaattorin automaattisesti.
Lausekkeiden osat
Lauseke koostuu useista mahdollisista osista, joita voit käyttää joko yksin tai yhdessä tuloksen tuottamiseksi. Näitä osia ovat mm:
-
Tunnisteet Lomakkeissa tai raporteissa käytettävien taulukon kenttien tai ohjausobjektien nimet tai näiden kenttien tai ohjausobjektien ominaisuudet
-
Operaattorit Esimerkiksi + (plus) tai - (miinus).
-
Funktiot Esimerkiksi SUMMA tai KESKIARVO.
-
Vakiot Arvot, jotka eivät muutu – kuten merkkijonot tai numerot, joita lauseke ei laske.
-
Arvot Merkkijonot, kuten ”Anna arvo väliltä 1–10” tai numerot, kuten 1 254, joita käytetään toiminnoissa.
Seuraavissa osissa kuvaillaan näitä osia yksityiskohtaisemmin.
Tunnisteet
Tunniste on kentän, ominaisuuden tai ohjausobjektin nimi. Tunnistetta käytetään lausekkeessa viitattaessa kenttään, ominaisuuteen tai ohjausobjektiin liittyvään arvoon. Tarkastellaan esimerkiksi lauseketta =[RequiredDate]-[ShippedDate]. Tämä lauseke vähentää ShippedDate-kentän tai -ohjausobjektin arvon RequiredDate-kentän tai -ohjausobjektin arvosta. Tässä lausekkeessa sekä RequiredDate että ShippedDate toimii tunnisteena.
Operaattorit
Access tukee erilaisia operaattoreita, mukaan lukien aritmeettiset operaattorit, kuten +, -, *, (kertomerkki) ja / (jakomerkki). Lisäksi voit käyttää arvojen vertailemisessa vertailuoperaattoreita, kuten < (pienempi kuin) tai > (suurempi kuin), tekstien yhdistämisessä tekstioperaattoreita, kuten & ja +, tosi- ja epätosi-arvojen määrittämisessä loogisia operaattoreita, kuten Not ja And, sekä muita Accessin omia operaattoreita.
Funktiot
Funktiot ovat valmiiksi määritettyjä toimintosarjoja, joita voidaan käyttää lausekkeissa. Funktioita käytetään erilaisissa toiminnoissa, kuten laskettaessa arvoja, käsiteltäessä tekstiä ja päivämääriä sekä tehtäessä tiedoista yhteenvetoja. Esimerkiksi DATE on usein käytetty funktio, joka palauttaa kuluvan päivän päivämäärän. DATE-funktiota voidaan käyttää eri tavoilla, esimerkiksi lausekkeena, joka asettaa taulukon kentälle oletusarvon. Tällöin aina kun joku lisää uuden tietueen, kentän oletusarvoksi tulee kuluvan päivän päivämäärä.
Jotkin funktiot edellyttävät argumentteja. Argumentti on arvo, joka antaa funktiolle syötteen. Jos funktio edellyttää enemmän kuin yhden argumentin, argumentit erotetaan toisistaan pilkuilla. Tarkastellaan esimerkiksi DATE-funktiota seuraavassa esimerkkilausekkeessa:
=Format(Date(),"mmmm d, yyyy")
Tässä esimerkissä käytetään kahta argumenttia:
-
Ensimmäinen argumentti on Date()-funktio, joka palauttaa kuluvan päivämäärän. Kun argumentteja ei ole, funktion sulkeet on silti lisättävä.
-
Toinen argumentti "mmmm d, yyyy", joka erotetaan ensimmäisestä argumentista pilkulla, määrittää tekstimerkkijonon, joka kertoo FORMAT-funktiolle, miten palautettu päivämääräarvo muotoillaan. Huomaa, että tekstimerkkijono on kirjoitettava lainausmerkkeihin.
Tämä lauseke kuvaa myös sitä, että usein toisen funktion palauttamaa arvoa voidaan käyttää argumenttina toisessa funktiossa. Tässä tapauksessa Date() toimii argumenttina.
Vakiot
Vakio on kohde, jonka arvo ei muutu, kun Access on käynnissä. True-, False- ja Null-vakioita käytetään lausekkeissa usein.
Arvot
Voit käyttää lausekkeissa literaaliarvoja, kuten lukua 1 254 tai merkkijonoa ”Anna arvo väliltä 1–10”. Numeeriset arvot voivat olla numeroiden sarjoja, jotka sisältävät tarvittaessa etumerkin ja desimaalipilkun.
Kun käytät tekstimerkkijonoarvoja, kirjoita ne lainausmerkkeihin, jotta Access varmasti tulkitsee ne oikein. Joissakin tilanteissa Access lisää lainausmerkit puolestasi. Jos esimerkiksi kirjoitat tekstiä kelpoisuussäännön tai kyselyn ehtojen lausekkeeseen, Access ympäröi tekstimerkkijonot lainausmerkeillä automaattisesti.
Jos haluat käyttää päivämäärä- ja aika-arvoja, kirjoita ne ristikkomerkkien (#) väliin. Esimerkiksi #3-7-17#, #7-Mar-17# ja #Mar-7-2017# ovat kelvollisia päivämäärä- ja aika-arvoja. Kun Access havaitsee kelvollisen, #-merkkien välissä olevan päivämäärä- ja aika-arvon, se pitää arvoa automaattisesti Pvm./klo-tietotyyppinä olevana arvona.
Accessin lausekkeiden ja Excelin kaavojen vertailu
Accessin lausekkeet muistuttavat Excelin kaavoja sikäli, että molemmissa käytetään tuloksen tuottamiseen samankaltaisia osia. Sekä Excel-kaava että Access-lauseke sisältää yhden tai useampia seuraavista:
-
Tunnisteet Excelissä tunnisteet ovat työkirjan yksittäisten solujen tai solualueiden nimiä, kuten A1, B3:C6 tai Taul2!C32. Accessissa tunnisteet ovat taulukoiden kenttien nimiä (kuten [Contacts]![First Name]), ohjausobjekteja (kuten Forms![Task List]![Description]) tai tällaisten kenttien tai ohjausobjektien ominaisuuksia (kuten Forms![Task List]![Description].ColumnWidth).
-
Operaattorit Operaattoreita käytetään sekä Accessissa että Excelissä arvojen vertailuun tai yksinkertaisten laskutoimitusten tekemiseen käyttäjän tiedoilla. Esimerkkejä ovat muun muassa + (plus) tai - (miinus).
-
Funktiot Funktioita ja argumentteja käytetään sekä Accessissa että Excelissä sellaisten tehtävien suorittamiseen, joita ei ole mahdollista suorittaa vain operaattoreita käyttäen – operaattorien avulla ei voi esimerkiksi löytää kentän arvojen keskiarvoa eikä muuntaa laskutoimituksen tulosta valuuttamuotoon. Esimerkkejä funktioista ovat SUMMA ja KESKIHAJONTA. Argumentit ovat arvoja, jotka tuovat funktioihin tietoa. Huomaa, että sekä Accessissa että Excelissä on valittavana monia funktioita mutta toisiaan vastaavat funktiot on voitu nimetä ohjelmissa eri tavoin. Esimerkiksi Excelin KESKIARVO-funktio vastaa Accessin KESKIA.-funktiota.
-
Vakiot Vakiot ovat sekä Accessissa että Excelissä arvoja, jotka eivät muutu – esimerkiksi lukuja, joita ei lasketa lausekkeita käyttäen.
-
Arvot Arvoja käytetään samalla tavalla sekä Accessissa että Excelissä.
Accessin lausekkeet käyttävät operaattoreita ja vakioita, jotka muistuttavat Excelissä käytettyjen kaavojen operaattoreita ja vakioita, mutta Accessin lausekkeet käyttävät erilaisia tunnisteita ja funktioita. Siinä missä Excelin kaavoja käytetään yleensä vain laskentataulukon soluissa, Accessin lausekkeita käytetään Accessissa monissa yhteyksissä ja monissa erilaisissa tehtävissä, kuten seuraavissa:
-
Laskettujen ohjausobjektien luominen lomakkeissa ja raporteissa
-
Laskettujen kenttien luominen taulukoissa ja kyselyissä
-
Ehtoina kyselyissä
-
Kenttään tai lomakkeen ohjausobjektiin syötetyn tiedon kelpoisuuden tarkistamisessa
-
Tietojen ryhmittelemiseen raporteissa
Numeeristen arvojen tai päivämäärä-/kellonaika-arvojen laskemiseen matemaattisten operaattoreiden avulla voi käyttää joko Accessin lausekkeita tai Excelin kaavoja. Jos esimerkiksi haluat laskea asiakkaalle alennushinnan, voit käyttää joko Excelin kaavaa =C2*(1-D2) tai Accessin lauseketta = [Unit Price]*(1-[Discount]).
Voit käyttää sekä Accessin lausekkeita että Excelin kaavoja myös, kun haluat yhdistellä, jakaa tai muulla tavoin käsitellä merkkijonoja käyttäen merkkijonon operaattoreita. Voit esimerkiksi yhdistää etunimen ja sukunimen yhdeksi merkkijonoksi käyttämällä Excelin kaavaa =D3 & " " & D4 tai Accessin lauseketta = [First Name] & " " & [Last Name].