Access-vinkkejä

Miksi Access?    parametri-kysely    Matematiikka kyselyssä    Makrot ja VBA    DLOOKUP
Taulun tekoon - kentät

Miksi Access?

Tavallinen toimistokäyttäjä

Vertailussa on tavallisen käyttäjän kannalta yleensä tietojen käsittely Excelissä verrattuna Access:iin.

Access soveltuu tilanteisiin, jossa tietoja yhdistellään useista tauluista esim. koodien perusteella.
Käyttäjäystävällisyys lomakkeiden ja raporttien muodossa helpottaa sovelluksen tekemistä myös
muille käyttäjille. Excel:ssä tämä on työläämpää ja toiminnot usein soveltuvat vain yhteen käyttö-
tarkoitukseen.

Access soveltuu myös hyvin suurien tietomassojen säilyttämiseen ja käsittelyyn.
Käsittelyn toistettavuus on tärkeää esim. vertailuraporteissa ja -kyselyissä, joita on
helpompi tehdä kuin Excel:ssä.

Jokin hinta on tietenkin maksettava ja se on pieni oppimiskynnys siirryttäessä tietojen käsittelyyn
tietokannassa. Idean ja sen edut omaksuu varsin nopeasti.

Ohjelmia voi käyttää yhdessä - Excelistä ei tarvitse luopua otettaessa Access käyttöön.
Access-tietokannan voi päivittää toimimaan MS SQL Server:ssä, jolloin suorituskyky kasvaa.

IT-asiantuntija

Access:n suorituskyky on usein keskusteltu aihe. Access-tietokanta on mainiosti käytettävissä
työryhmien 1 - 20 henkilöä - tietojenkäsittelyssä. Etäkäyttö voidaan hoitaa replikoimalla.
Liitynnät Oracle, MS SQL Server, yms. tietokantoihin onnistuvat helposti ODBC-linkityksellä.
Access-projekteilla voi hyödyntää Access:n ylivoimaista käytettävyyttä ja käyttäliittymän ohjelmoitavuutta.

Ohjelmointi tapahtuu VBA:lla - voisi kärjistää, että Access on Visual Basic, jossa Access:n helpot
toiminnot ovat päällimmäisinä ja VBA käytettäessä tarvittaessa. Visual Basic:lla taas ohjelmointi-
kieli on päälimmäisenä ja tietokantaa kutsutaan käsin tehtävillä toiminnoilla.

Lyhyesti arvioiden sovelluksen - ison tai pienen - teko on Access:llä 4 - 10 kertaa nopeampaa
(halvempaa?), kuin muilla välineillä.

Monikäyttöinen kysely - parametri-kysely

Korvaamalla ehdot (criteria) kyselyssä hakasuluissa olevalla kysymyksellä (parametri) kyselystä
tulee monikäyttöinen, ts. joka kerta kysely suoritettaessa Access kysyy ensin kriteerin
ja avaa tulostaulun annetulla kriteerillä.'

Avattaessa kysely kysytään parametri:

Syöttämääsi arvoa käytetään kriteerinä - ikään kuin se tulee kriteriinä hakasuluissa olevan
parametrin tilalle:

HUOM! Hakasuluissa oleva parametri ei saa olla sama, kuin jo käytössä oleva kenttänimi.
Esim. jos haluat parametrin Maa-kenttälle voit käyttää parametrina:

[Anna maa]

VINKKI! Jokeri- eli korvausmerkkejä voi käyttää kriteerinä yhdessä parametrin kanssa:

Like [Anna Maa] & "*"

Matematiikka kyselyssä

Excelistä tutun If-funktion muoto Access-kyselyssä käytettäessä onkin Iif (Immediate If)!

Sovelluskehitys - Makrot ja VBA

Käytän menestyksellisesti kyselyjä ja makroja sovelluskehitykseen nopeuden ja intuitiivisuuden
takia. Protoilu, testaus ja virheentarkistus ovat helppoja.

VBA:ssa on ominaisuuksia, joita makroista puuttuu:

VBA Makrot
Case-rakenne Osittain toteutettavissa Condition-sarakkeella
Loop-silmukat Osittain toteutettavissa Repeat-toiminnolla käyttämällä laskurina esim. lomakkeen kentän arvoa
Vakiot ja muuttujat Osittain toteutettavissa käyttämällä lomakkeen kentän arvoa
Funktiot: omat ja API
Transaction-datan eräajot RollBack esim. väliaikaisilla tauluilla ja Delete-kyselyillä
Tietokanta-objektien luominen Taulujen muokkaus SQL DDL-kyselyillä
Virheiden käsittely
OLE ja DDE-operaatiot Osittain korvattavissa linkityksellä Office-ohjelmiin

Ylläolevaan olen kerännyt vaihtoehtoisia makroilla tehtäviä ratkaisutapoja. Huomattavaa etua VBA:lla saavutetaan
suorituskyvyssä ja omilla funktiolla.

Arvon etsiminen taulusta - DLOOKUP

Muoto:

DLookUp(kenttä,taulu,ehto)

Voidaan käyttää ilman ehtoakin esim. testaustilanteessa. Erottimena käytetään Access-ympäristössä pilkkua ja VBA-ympäristössä pilkkua.

kenttä kenttä, jonka arvon funktio palauttaa taulusta
taulu taulu, josta haetaan
ehto ehtolauseke, joka yksilöi palautettavan arvon

Muistisääntö: kentän nimi on aina lainausmerkeissä (") ja hakasuluissa ([]), taulu ja ehto lainausmerkeissä.

Malli 1. Haetaan arvo vuoden perusteella:

DLookUp("[Tulos]";"Tilinpäätös";"[Vuosi]=2003")

Malli 2. Haetaan palkka tehtävämäärittely perusteella

DLookUp("[Peruspalkka]";"PalkkaLuokat";"[Tehtävä]='Ohjelmoija'")

tekstiehdon erottaa tässä yksinkertainen lainausmerkki (')

Jatkuu...

Taulun tekoon - kentät

Kun teet tauluja tai tuot tietoja joudut miettimään minkätyyppisiä kenttiä tarvitset.

Yksinkertaisimpana nyrkkisääntöinä käytä:
- TEKSTI - jos et tiedä mitä kenttään tulee tai miten sitä käytetään
- NUMERO - jos kentällä lasketaan jotain jatkossa, esim. rahasummat, lkm, jne.
- PVM/AIKA - jos kentän perusteella lajitellaan, ryhmitellään tai lasketaan aikaa ja aikaeroja