Merkkijonofunktioiden avulla voit luoda Accessissa lausekkeita, jotka muokkaavat tekstiä monin eri tavoin. Haluat ehkä esimerkiksi näyttää lomakkeessa vain osan sarjanumerosta. Voit myös joutua yhdistämään useita merkkijonoja, kuten sukunimen ja etunimen. Jos et vielä osaa käyttää lausekkeita, katso lisätietoja artikkelista Lausekkeen luominen.
Seuraavassa on luettelo Accessin yleisistä merkkijonotoiminnoista ja niiden suorittamiseen käytettävistä funktioista:
Toiminto |
Käytä... |
Esimerkiksi... |
Tulokset |
---|---|---|---|
Merkkien palauttaminen merkkijonon alusta |
=Vasen([Sarjanumero],2) |
Jos [SerialNumber] on "CD234", tulos on "CD". |
|
Merkkien palauttaminen merkkijonon lopusta |
=Oikea([Sarjanumero],3) |
Jos [Sarjanumero] on "CD234", tulos on "234". |
|
Merkkijonon merkin sijainnin etsiminen |
=InStr(1;[Etunimi],"i") |
Jos [Etunimi] on "Colin", tulos on 4. |
|
Merkkien palauttaminen merkkijonon keskeltä |
=Mid([Sarjanumero],2,2) |
Jos [Sarjanumero] on "CD234", tulos on "D2". |
|
Merkkijonon alussa tai lopussa olevan välilyönnin rajaaminen |
=Rajaa([Etunimi]) |
Jos [Etunimi] on " Colin ", tulos on "Colin". |
|
Kahden merkkijonon yhdistäminen |
Plusmerkkioperaattori (+) * |
=[Etunimi] + [Sukunimi] |
Jos [Etunimi] on "Colin" ja [Sukunimi] on Wilcox, tulos on "ColinWilcox" |
Kahden merkkijonon yhdistäminen ja niiden välissä olevan välilyönnin yhdistäminen |
Plusmerkkioperaattori (+) * |
=[Etunimi] + " " + [Sukunimi] |
Jos [Etunimi] on "Colin" ja [Sukunimi] on Wilcox, tulos on "Colin Wilcox" |
Merkkijonon kirjainkoolla muuttaminen isoksi tai pienemmäksi kirjainkoolla |
=UCase([Etunimi]) |
Jos [Etunimi] on "Colin", tulos on "COLIN". |
|
Merkkijonon pituuden määrittäminen |
=Len([Etunimi]) |
Jos [Etunimi] on "Colin", tulos on 5. |
Se ei siis ole funktio, se on operaattori. Se on kuitenkin nopein tapa yhdistää merkkijonoja. Työpöytätietokannassa voit käyttää ketjuttamiseen myös et-merkkiä (&).
Accessissa on paljon enemmän tekstiin liittyviä funktioita. Saat niistä lisätietoja avaamalla lausekkeenmuodostimen ja selaamalla funktioluetteloita. Lausekkeenmuodostin on käytettävissä lähes missä tahansa, missä haluat luoda lausekkeen. Yleensä on olemassa pieni Koontiversio-painike , joka näyttää tältä:
Jos haluat esittää lausekkeenmuodostimen, avataan se lomakkeen tai näkymän Ohjausobjektin lähde -ominaisuudesta. Käytä jotakin alla olevista ohjeista sen mukaan, käytätkö työpöytätietokantaa vai Access-verkkosovellusta.
Lausekkeenmuodostimen näyttäminen työpöytätietokannassa
-
Avaa työpöytätietokanta (.accdb).
-
Avaa siirtymisruutu painamalla F11-näppäintä, jos se ei ole vielä avoinna.
-
Jos lomake on jo käytettävissä, napsauta sitä hiiren kakkospainikkeella siirtymisruudussa ja valitse Asettelunäkymä. Jos käytössäsi ei ole lomaketta, valitse Luo > lomake.
-
Napsauta lomakkeen tekstiruutua hiiren kakkospainikkeella ja valitse Ominaisuudet.
-
Valitse Ominaisuusikkunassa Kaikki > Ohjausobjektin lähde ja napsauta Muodosta-painiketta Ohjausobjektin lähde -ominaisuusruudun oikeassa reunassa.
-
Laajenna Lausekkeen osat-kohdassa Funktiot-solmu ja valitse Valmiit funktiot.
-
Valitse Lausekkeen luokat -kohdassa Teksti.
-
Napsauta Lausekkeen arvot -kohdassa eri funktioita ja lue lyhyet kuvaukset lausekkeenmuodostimen alareunassa.
Huomautus: Kaikki nämä funktiot eivät ole käytettävissä kaikissa yhteyksissä. Access suodattaa luettelon automaattisesti sen mukaan, mitkä niistä toimivat kussakin kontekstissa.
Tekstifunktioiden yhdistäminen joustavuuden lisäämiseksi
Joissakin merkkijonofunktioissa on numeerisia argumentteja, jotka on joissakin tapauksissa laskettava aina, kun kutsut funktiota. Esimerkiksi Vasen-funktio ottaa merkkijonon ja luvun, kuten =Vasen(Sarjanumero, 2). Tämä on kätevää, jos tiedät tarvitsevasi aina kaksi vasenta merkkiä, mutta entä jos tarvitsemiesi merkkien määrä vaihtelee kohteesta toiseen? Sen sijaan, että koodaisit vain merkkien määrän, voit kirjoittaa toisen funktion, joka laskee sen.
Seuraavassa on esimerkki sarjanumeroista, joissa jokaisessa merkkijonossa on yhdysmerkki. Yhdysmerkin sijainti vaihtelee kuitenkin seuraavasti:
Serialnumber |
---|
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
Jos haluat näyttää numerot vain yhdysmerkin vasemmalla puolella, sinun on tehtävä laskutoimitus joka kerta selvittääksesi, missä yhdysmerkki on. Yksi vaihtoehto on tehdä jotain tällaista:
=Left([SerialNumber],InStr(1;[SerialNumber],"-")-1)
Sen sijaan, että kirjoittaisimme luvun Vasen-funktion toiseksi argumentiksi, olemme liittäneet InStr-funktion, joka palauttaa yhdysmerkin sijainnin sarjanumerossa. Vähennä arvosta 1, niin saat oikean määrän merkkejä, jotka Vasen-funktio palauttaa. Vaikuttaa aluksi hieman monimutkaiselta, mutta pienellä kokeilulla voit yhdistää kaksi tai useampia lausekkeita saadaksesi haluamasi tulokset.