Lausekkeiden syntaksiopas

Käytetään kohteeseen
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Kun käytät Microsoft Accessia, sinun on usein käytettävä arvoja, joita ei ole suoraan tiedoissasi. Oletetaan esimerkiksi, että haluat laskea tilauksen arvonlisäveron tai tilauksen kokonaisarvon. Voit laskea nämä arvot käyttämällä lausekkeita. Jotta voit käyttää lausekkeita, kirjoita ne käyttämällä oikeaa syntaksia. Syntaksi on joukko sääntöjä, joiden avulla lausekkeen sanat ja symbolit yhdistetään oikein. Accessin lausekkeita voi olla aluksi hieman vaikea lukea. Kun opettelet lausekkeiden syntaksin ja harjoittelet hiukan, tästä tulee paljon helpompaa.

Tämän artikkelin sisältö

Yleistä lausekkeista

Lauseke muodostuu joistakin tai kaikista seuraavista: sisäiset tai käyttäjän määrittämät funktiot, tunnisteet, operaattorit, arvot ja vakiot, jotka palauttavat tulokseksi yksittäisen arvon.

Lausekkeen osat

Esimerkiksi seuraava lauseke sisältää yleisiä osia:

=Sum([Purchase Price])*0.08 
  • Sum() on sisäinen funktio
  • [Purchase Price] on tunniste
  • * on matemaattinen operaattori
  • 0.08 on vakio

Tätä lauseketta voidaan käyttää tekstiruudussa lomakkeen tai raportin alatunnisteessa tuoteryhmän arvonlisäveron laskemiseen.

Lausekkeet voivat olla paljon esimerkkiä monimutkaisempia tai yksinkertaisempia. Tämä totuusarvolauseke koostuu esimerkiksi vain operaattorista ja vakiosta:

>0

Tämä lauseke palauttaa seuraavan:

  • True kun sitä verrataan lukuun, joka on suurempi kuin 0.
  • False kun sitä verrataan lukuun, joka on pienempi kuin 0.

Voit käyttää tätä lauseketta ohjausobjektin Kelpoisuussääntö-ominaisuudessa tai taulukon kentässä, kun haluat varmistaa, että annetaan vain positiivisia arvoja. Lausekkeita käytetään monissa paikoissa laskutoimitusten suorittamiseen, merkkien käsittelemiseen tai tietojen testaamiseen. Sekä taulukoissa, kyselyissä, lomakkeissa, raporteissa että makroissa on ominaisuuksia, joissa voi käyttää lauseketta. Voit käyttää lausekkeita esimerkiksi ohjausobjektin Ohjausobjektin lähde- ja Oletusarvo-ominaisuuksissa. Voit käyttää lausekkeita myös taulukon kentän Kelpoisuussääntö-ominaisuudessa.

Sivun alkuun

Lausekkeiden osat

Lauseke luodaan yhdistämällä tunnisteita funktioiden, operaattoreiden, vakioiden ja arvojen avulla. Kelvollisessa lausekkeessa on oltava vähintään yksi funktio tai vähintään yksi tunniste, ja se voi sisältää myös vakioita tai operaattoreita. Voit käyttää lauseketta myös osana toista lauseketta– yleensä funktion argumenttina. Tätä kutsutaan lausekkeiden sisäkkäisyydeksi.

  • Tunnisteet Yleinen muoto on:

    [Collection name]![Object name].[Property name]
    

    Sinun on määritettävä riittävästi tunnisteen osia, jotta se on yksilöllinen lausekkeen kontekstissa. Ei ole harvinaista, että tunniste on muodossa [Object name].

  • Funktiot Yleinen muoto on:

    Function(argument, argument)
    

    Jokin argumenteista on yleensä tunniste tai lauseke. Jotkin funktiot eivät vaadi argumentteja. Ennen kuin käytät tiettyä funktiota, tarkista funktion syntaksi. Lisätietoja on artikkelissa Funktiot (järjestettyinä luokittain).

  • Operaattorit Yleinen muoto on:

    Identifier operator identifier
    

    Muotoon on joitakin poikkeuksia, jotka on kuvattu Operaattorit-osassa.

  • Vakiot Yleinen muoto on:

    Identifier comparison_operator constant
    
  • Arvot Arvoja voi olla lausekkeen monissa kohdissa.

Sivun alkuun

Objektit, kokoelmat ja ominaisuudet

Kaikkia Access-tietokannan taulukoita, kyselyitä, lomakkeita, raportteja ja kenttiä kutsutaan objekteiksi. Jokaisella objektilla on nimi. Joillekin objekteille on jo annettu nimi, kuten esimerkiksi Yhteystiedot-taulukolle tietokannassa, joka on luotu Microsoft Office Accessin Yhteystiedot-mallista. Kun luot uuden objektin, annat sille nimen.

Tietyntyyppisen objektin kaikkien jäsenten joukkoa kutsutaan kokoelmaksi. Esimerkiksi tietokannan kaikkien taulukoiden joukko on kokoelma. Jotkin objektit, jotka kuuluvat tietokannassa kokoelmaan, voivat myös olla kokoelmia, jotka sisältävät muita objekteja. Esimerkiksi taulukko-objekti on kokoelma, joka sisältää kenttäobjekteja.

Objekteilla on ominaisuudet, jotka kuvaavat objektin ominaispiirteet ja joiden avulla ominaispiirteitä voi muuttaa. Esimerkiksi kyselyobjektilla on Oletusnäkymä-ominaisuus, joka sekä kuvaa että antaa määrittää sen, miten kysely näkyy, kun se suoritetaan.

Seuraava kaavio kuvaa kokoelmien, objektien ja ominaisuuksien välisen suhteen:

Kokoelmien yhteydet objekteihin ja ominaisuuksiin 3 Ominaisuus


2 Objekti


1 Kokoelma

Sivun alkuun

Tunnisteet

Kun käytät objektia, kokoelmaa tai ominaisuutta lausekkeessa, viittaat kyseiseen osaan käyttämällä tunnistetta. Tunniste sisältää määritettävän osan nimen ja sen osan nimen, johon se kuuluu. Esimerkiksi kentän tunniste sisältää kentän nimen ja sen taulukon nimen, johon kenttä kuuluu. Esimerkki tällaisesta tunnisteesta on seuraavassa:

[Customers]![BirthDate]

Joissakin tapauksissa pelkkä osan nimi toimii tunnisteena. Tämä koskee tilanteita, joissa osan nimi on yksilöllinen luotavan lausekkeen kontekstissa. Loput tunnisteesta saadaan kontekstista. Jos esimerkiksi suunnittelet kyselyä, joka käyttää vain yhtä taulukkoa, pelkät kenttien nimet toimivat tunnisteina, koska taulukon kenttien nimien on oltava yksilöllisiä kyseisessä taulukossa. Koska käytät vain yhtä taulukkoa, taulukon nimi päätellään tunnisteissa, joiden avulla viittaat kyselyssä kenttään.

Joskus tunnisteen osat on annettava erikseen, jotta viittaus toimii. Näin on toimittava, kun tunniste ei ole yksilöllinen lausekkeen kontekstissa. Jos moniselitteisyyttä ilmenee, sinun on annettava riittävästi tunnisteen osia, jotta tunniste on yksilöllinen kontekstissa. Oletetaan esimerkiksi, että suunnittelet kyselyä, jossa käytetään taulukkoa nimeltä Tuotteet ja taulukkoa nimeltä Tilaukset, ja kummassakin taulukossa on Tuotetunnus-kenttä. Tässä tapauksessa tunnisteen, jota käytät kyselyssä viittaamaan kumpaan tahansa Tuotetunnus-kenttään, on sisällettävä taulukon nimi kentän nimen lisäksi. Esimerkki:

[Products]![ProductID]

Tunnisteen operaattorit Tunnisteessa voi käyttää kolmea operaattoria:

  • Bang-operaattori (!)
  • Pisteoperaattori (.)
  • Hakasulkeiden operaattori ([ ])

Näitä operaattoreita käytetään ympäröimällä tunnisteen jokainen osa hakasulkeilla ja yhdistämällä ne sitten joko huutomerkki- tai pisteoperaattorilla. Esimerkiksi Työntekijät-taulukon Sukunimi-nimisen kentän tunniste voidaan ilmaista muodossa [Employees]![Last Name]. Huutomerkkioperaattori kertoo Accessille, että seuraavana tulee objekti, joka kuuluu huutomerkkioperaattoria edeltävään kokoelmaan. Tässä tapauksessa [Sukunimi] on kenttäobjekti, johon kuuluu kokoelmaan [Työntekijät], joka itsessään on taulukko-objekti.

Tarkkaan ottaen tunnisteen tai tunnisteen osan ympärille ei aina tarvitse kirjoittaa hakasulkeita. Jos tunnisteessa ei ole välilyöntejä eikä muita erikoismerkkejä, Access lisää sulkeet automaattisesti, kun se lukee lausekkeen. On kuitenkin hyvä kirjoittaa hakasulkeet itse– tämä auttaa välttämään virheitä ja toimii myös visuaalisena vihjeenä siitä, että tietty osa lausekkeesta on tunniste.

Sivun alkuun

Funktiot, operaattorit, vakiot ja arvot

Lausekkeen luomiseen tarvitaan muutakin kuin tunnisteita– sinun on suoritettava jokin toiminto. Lausekkeessa suoritetaan toimintoja käyttämällä funktioita, operaattoreita ja vakioita.

Funktiot

Funktio on toimenpide, jota voi käyttää lausekkeessa. Jotkin funktiot, kuten Date, eivät vaadi syötettä toimiakseen. Useimmat funktiot vaativat kuitenkin syötteitä, joita kutsutaan argumenteiksi.

Tämän artikkelin alussa olevassa esimerkissä DatePart-funktio käyttää kahta argumenttia: väliargumenttia, jonka arvo "yyyy" ja päivämääräargumentti ovat [Customers]![BirthDate]. DatePart-funktio edellyttää vähintään näitä kahta argumenttia (väli ja päivämäärä), mutta siinä voi käyttää enintään neljää argumenttia.

Seuraavassa on lueteltu joitakin funktioita, joita käytetään usein lausekkeissa. Napsauttamalla kunkin funktion linkkiä saat lisätietoja syntaksista, jota kyseisen funktion kanssa käytetään.

  • Date-funktion avulla lausekkeeseen lisätään järjestelmän nykyinen päivämäärä. Sitä käytetään usein Format-funktion kanssa, ja sitä käytetään myös sellaisten kenttien tunnisteiden kanssa, jotka sisältävät päivämäärä- ja aikatietoja.

    =Date()
    
  • DatePart-funktiota käytetään päivämäärän osan määrittämiseen tai poimimiseen. Se on yleensä kentän tunnisteesta saatu päivämäärä, mutta joskus toisen funktion, kuten Päivämäärän, palauttama päivämääräarvo.

    DatePart ( "yyyy", Date())
    
  • DateDiff-funktiota käytetään kahden päivämäärän välisen eron määrittämiseen– yleensä kentän tunnisteesta hankitun päivämäärän ja Päivämäärä-funktiolla hankitun päivämäärän välillä.

    =DateDiff("d", Now(), [Orders].[ReceiveBefore])-10 
    
  • Format-funktion avulla tunnisteeseen ja toisen funktion tuloksiin voidaan lisätä muotoilu.

    Format([Date],"ww")=Format(Now(),"ww")-1 
    
  • IIf-funktion avulla lauseke arvioidaan todeksi tai epätodeksi ja palautetaan sitten yksi arvo, jos lauseke arvioidaan todeksi, ja eri arvo, jos lauseke arvioidaan epätodeksi.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
    
  • InStr-funktiolla etsitään merkin tai merkkijonon sijaintia toisesta merkkijonosta. Haettu merkkijono on yleensä peräisin kentän tunnisteesta.

    InStr(1,[IPAddress],".")
    
  • Left-, Mid- ja Right-funktioiden avulla voidaan poimia merkkejä merkkijonosta alkaen vasemmanpuoleisimmasta merkistä (Left), tietystä sijainnista keskellä (Mid) tai oikeanpuolimmaisesta merkistä (Right). Niitä käytetään usein InStr-funktion kanssa. Merkkijono, josta nämä funktiot poimivat merkkejä, saadaan yleensä kentän tunnisteesta.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    
    

Funktioiden luettelo on artikkelissa Funktiot (järjestettyinä luokittain).

Operaattorit

Operaattori on sana tai symboli, joka ilmaisee lausekkeen muiden osien välisen aritmeettisen tai loogisen suhteen. Operaattorit voivat olla seuraavanlaisia:

  • Aritmeettinen, kuten plusmerkki (+).
  • Vertailu, kuten yhtäläisyysmerkki (=).
  • Looginen, kuten Not.
  • Ketjutus, kuten &.
  • Erikoismuotoilu, kuten Like.

Operaattoreita käytetään yleensä osoittamaan kahden tunnisteen välinen suhde. Seuraavissa taulukoissa kuvataan operaattorit, joita voi käyttää Accessin lausekkeissa.

Aritmeettinen

Aritmeettisia operaattoreita käytetään laskettaessa arvoa vähintään kahdesta luvusta tai vaihdettaessa luvun etumerkkiä positiivisesta negatiiviseksi.

Operaattori Käyttötarkoitus Esimerkki
+ Laskee yhteen kaksi lukua. [Välisumma]+[Arvonlisävero]
- Laskee kahden luvun erotuksen tai ilmoittaa luvun negatiivisen arvon. [Hinta]-[Alennus]
* Kertoo kaksi lukua. [Määrä]*[Hinta]
/ Jakaa ensimmäisen luvun toisella luvulla. [Yhteensä]/[Nimikemäärä]
\ Pyöristää molemmat luvut kokonaisluvuiksi ja jakaa sitten ensimmäisen luvun toisella luvulla. Katkaisee sen jälkeen tuloksen kokonaisluvuksi. [Ilmoittautuneet]\[Huoneet]
Mod Jakaa ensimmäisen luvun toisella luvulla ja palauttaa vain jakojäännöksen. [Ilmoittautuneet] Mod [Huoneet]
^ Korottaa luvun eksponentin potenssiin. Luku ^ Eksponentti

Vertailu

Vertailuoperaattoreiden avulla verrataan arvoja ja palautetaan tulos, joka on joko tosi, epätosi tai tyhjäarvo (tuntematon arvo).

Operaattori Käyttötarkoitus
< Määrittää, onko ensimmäinen arvo pienempi kuin toinen arvo.
<= Määrittää, onko ensimmäinen arvo pienempi tai yhtä suuri kuin toinen arvo.
> Määrittää, onko ensimmäinen arvo suurempi kuin toinen arvo.
>= Määrittää, onko ensimmäinen arvo suurempi tai yhtä suuri kuin toinen arvo.
= Määrittää, onko ensimmäinen arvo yhtä suuri kuin toinen arvo.
<> Määrittää, onko ensimmäinen arvo eri suuri kuin toinen arvo.

Kaikissa tapauksissa, jos joko ensimmäinen arvo tai toinen arvo on Null, tulos on myös Null. Koska Null kyseessä on tuntematon arvo, minkä tahansa vertailun Null tulos on tuntematon.

Looginen

Loogisilla operaattoreilla yhdistetään kaksi arvoa ja palautetaan joko tosi-, epätosi- tai tyhjäarvo-tulos. Loogisia operaattoreita voidaan kutsua myös totuusarvo-operaattoreiksi.

Operaattori Käyttö Kuvaus
And Lauseke1 And Lauseke2 Tosi, jos Lauseke1 ja Lauseke2 ovat tosia.
Or Lauseke1 Or Lauseke2 Tosi, jos joko Lauseke1 tai Lauseke2 on tosi.
Eqv Lauseke1 Eqv Lauseke2 Tosi, jos sekä Lauseke1 että Lauseke2 ovat tosia tai sekä Lauseke1 että Lauseke2 ovat epätosia.
Not Not Lauseke Tosi, jos Lauseke ei ole tosi.
Xor Lauseke1 Xor Lauseke2 Tosi, jos joko Lauseke1 on tosi tai Lauseke2 on tosi, mutta eivät molemmat.

Ketjuttavat

Ketjutusoperaattoreilla voidaan yhdistää kaksi tekstiarvoa yhdeksi merkkijonoksi.

Operaattori Käyttö Kuvaus
& merkkijono1 & merkkijono2 Muodostaa yhden merkkijonon yhdistämällä kaksi merkkijonoa.
+ merkkijono1 + merkkijono2 Muodostaa yhden merkkijonon yhdistämällä kaksi merkkijonoa ja välittää tyhjäarvoja.

Erikoiskäyttöiset

Erikoisoperaattoreita käytetään seuraavassa taulukossa kuvatuilla tavoilla.

Operaattori Kuvaus Lisätietoja
Is Null or Is Not Null Määrittää, onko arvo tyhjäarvoinen vai ei tyhjäarvoinen.
Like "pattern" Täsmää merkkijonoarvot käyttämällä yleismerkkejä ?ja *. Like-operaattori
Between val1 And val2 Määrittää, sisältyykö numeerinen arvo tai päivämääräarvo tiettyyn alueeseen. Between...And -operaattori
In(string1,string2...) Määrittää, sisältyykö merkkijonoarvo merkkijonoarvojen joukkoon. In-operaattori

Vakiot

Vakio on tunnettu arvo, joka ei muutu ja jota voi käyttää lausekkeessa. Accessissa on neljä yleisesti käytettyä vakiota:

  • True ilmaisee jotain loogisesti totta.
  • False ilmaisee jotain loogisesti epätosia.
  • Null ilmaisee tunnetun arvon puuttumisen.
  • "" (empty string) ilmaisee arvon, jonka tiedetään olevan tyhjä.

Vakioita voi käyttää funktion argumentteina, ja niitä voi käyttää lausekkeessa ehdon osana. Voit esimerkiksi käyttää tyhjää merkkijonovakiota ("") osana kyselyn sarakkeen ehtoa kyseisen sarakkeen kenttien arvojen arvioimiseen kirjoittamalla ehdoksi seuraavan ehdon: <>"". Tässä esimerkissä <> on operaattori ja "" se on vakio. Kun niitä käytetään yhdessä, ne ilmaisevat, että tunnistetta, johon niitä käytetään, on verrattava tyhjään merkkijonoon. Tuloksena saatava lauseke on tosi, jos tunnisteen arvo on mikä tahansa muu kuin tyhjä merkkijono.

Ole varovainen käyttäessäsi vakiota Null . Useimmissa tapauksissa vertailuoperaattorin kanssa käyttäminen Null aiheuttaa virheen. Jos haluat verrata arvoa Null lausekkeessa, käytä -operaattoria Is Null tai operaattoria Is Not Null .

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. Jos etumerkkiä ei ole, Access olettaa arvon olevan positiivinen. Jos haluat tehdä arvosta negatiivisen, lisää miinusmerkki (-). Voit käyttää myös tieteellistä merkintätapaa. Lisää tällöin "E" tai "e" ja eksponentin etumerkki (esimerkiksi 1,0E-6).

Kun käytät tekstimerkkijonoja, 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 esimerkiksi kirjoitat tekstin Paris, Access näyttää lausekkeessa sanan "Pariisi". Jos haluat lausekkeen tuottavan merkkijonon, joka on lainausmerkeissä, kirjoita sisäkkäinen merkkijono joko puolilainausmerkkeihin (') tai kolmen lainausmerkkijoukon" sisään. Esimerkiksi seuraavat lausekkeet vastaavat toisiaan:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Jos haluat käyttää päivämäärä- ja kellonaika-arvoja, kirjoita arvot ristikkomerkkeihin (#). 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.

Sivun alkuun

Sisäkkäisten lausekkeiden enimmäismäärä verkkotietokannassa on 65.

Yli 65 tason syvyiset lausekkeet eivät toimi selaimessa, joten tällaisia lausekkeita ei kannata käyttää Access-verkkotietokannassa. Et saa virhesanomia – lauseke ei vain toimi.

- ja OR -operaattoreiden AND&käyttö voi luoda palvelimeen lisää sisäkkäisten tasojen tasoja, jotka eivät näy Access-asiakasohjelmassa. Lauseketta "a" & "b" & "c" ei esimerkiksi ole lausekkeenmuodostimessa, mutta SharePointissa siitä tulee concatenate.Db("a", concatenate.Db("b", "c") ). Tämä käännös luo yhden sisäkkäisyystason. Jos käytät useita peräkkäisiä &, ANDtai OR operaattoreita yhdessä lausekkeessa, voit ylittää palvelimen sisäkkäisen rajan 65, jolloin lauseke ei toimi selaimessa.

Sivun alkuun

Lausekkeenmuodostimen käyttäminenJohdanto lausekkeisiinLausekkeen muodostaminenEsimerkkejä lausekkeista