Tietueiden lajitteleminen kirjainkoon mukaan

Huomautus:  Microsoft haluaa tarjota sinulle ajantasaisinta ohjesisältöä mahdollisimman nopeasti omalla kielelläsi. Tämä sivu on käännetty automaation avulla, ja siinä saattaa olla kielioppivirheitä tai epätarkkuuksia. Tarkoitus on, että sisällöstä on sinulle hyötyä. Kertoisitko sivun alareunassa olevan toiminnon avulla, oliko tiedoista hyötyä? Tästä pääset helposti artikkelin englanninkieliseen versioon .

Microsoft Office Access 2007 lajittelee tietueet nousevaan tai laskevaan järjestykseen kirjainkokoa huomioon ottamatta. Muutamalla VBA (Visual Basic for Applications) -koodirivillä voit kuitenkin lajitella tekstin ASCII-merkkiarvojen mukaan. Kun lajitteluperusteena käytetään ASCII-arvoja, suurilla ja pienillä kirjaimilla kirjoitetut arvot erotellaan toisistaan ja kohteet lajitellaan kirjainkoon huomioon ottavaan lajittelujärjestykseen.

Seuraavassa taulukossa havainnollistetaan, kuinka nouseva lajittelujärjestys ja lajittelu kirjainkoon mukaan eroavat toisistaan Accessissa:

Järjestys ennen lajittelua:

Nouseva järjestys:

Kirjainkoon huomioon Kohdehistoria r

c

a

A

D

A:

S

a

S

M

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

Vaikka Nouseva järjestys -sarakkeen tulokset voivat vaikuttaa melko satunnaisilta, ne eivät sitä kuitenkaan ole. Nouseva järjestys -sarakkeessa merkki a tulee ennen merkkiä A ja merkki B ennen merkkiä b. Tämä toteutuu, koska tekstiarvoina A = a ja B = b kirjainkoosta huolimatta. Access ottaa arvojen alkuperäisen järjestyksen huomioon, ja Järjestys ennen lajittelua -sarakkeessa merkki a edeltää merkkiä A ja merkki B merkkiä b.

Kun kirjainkoon huomioon ottava lajittelu suoritetaan, tekstiarvot korvataan niiden ASCII-arvoilla. Esimerkiksi A = 65, a = 97, B = 66, b = 98 ja niin edelleen.

VBA-koodin kirjoittaminen

  1. Luo VBA-moduuli ja kirjoita määrittelyosaan seuraava rivi, jos se ei ole valmiiksi määrittelyosassa:

Option Explicit

  1. Kirjoita seuraava koodi Visual Basic Editorin moduuliin:

    Function StrToHex (S As Variant) As Variant
    '
    ' Converts a string to a series of hexadecimal digits.
    ' For example, StrToHex(Chr(9) & "A~") returns 09417E.
    '
    Dim Temp As String, I As Integer
    If VarType(S) <> 8 Then
    StrToHex = S
    Else
    Temp = ""
    For I = 1 To Len(S)
    Temp = Temp & Format(Hex(Asc(Mid(S, I, 1))), "00")
    Next I
    StrToHex = Temp
    End If
    End Function

    Tämän käyttäjän määrittämän StrToHex-funktion voi kutsua kyselystä. Kun lajittelukentän nimi välitetään tälle funktiolle, kenttien arvot lajitellaan kirjainkoko huomioon ottaen.

  2. Seuraavaksi luodaan kysely, josta tämä funktio kutsutaan.

    Valitse Luo-välilehden Muut-ryhmässä Kyselyn rakennenäkymä.

  3. Napsauta Näytä taulukko -valintaikkunassa taulukkoa, joka on tarkoitus lajitella, ja valitse Lisää.

  4. Vedä haluamasi kentät ruudukkoon.

  5. Kirjoita ensimmäisen tyhjän sarakkeen kenttä -riville Lauseke1: StrToHex([lajittelukenttä]).

    StrToHex on aiemmin luotu käyttäjän määrittämä funktio. Lajittelukenttä on sen kentän nimi, joka sisältää kirjainkoon huomioon ottavat arvot.

  6. Valitse Lajittelu-solussa Nouseva tai Laskeva.

    Jos valitset nousevan järjestyksen, suurella kirjaimella alkava arvo näkyy ennen pienillä kirjaimilla alkavia arvoja. Jos valitset laskevan järjestyksen, tapahtuu päinvastoin.

  7. Siirry taulukkonäkymään.

    Access näyttää tietueet lajiteltuina siten, että kirjainkoko on otettu huomioon.

Sivun alkuun

Kehitä Office-taitojasi
Tutustu koulutusmateriaaliin
Saat uudet ominaisuudet ensimmäisten joukossa
Liity Office Insider -käyttäjiin

Oliko näistä tiedoista hyötyä?

Kiitos palautteesta!

Kiitos palautteestasi! Näyttää siltä, että Office-tukiedustajamme avusta voi olla sinulle hyötyä.

×