Microsoft Access: lomakkeet ja raportit - Demo 4 (Office 2007)

Näissä demoissa tutustutaan Microsoft Access 2007:iin, tehdään tauluille muutama käyttöä helpottava lisämääritys, rakennetaan lomakkeilla pieni käyttöliittymä ja tehdään pari raporttia.

Jos sinulla on vanhempi Access niin voit käyttää Access 2003 -tehtäviä.

Taulujen lisämääritykset

Ennen lomakkeiden luomista kannattaa Accessissa määritellä hakutaulut (lookup) kaikkiin kenttiin joihin se on suinkin mahdollista. Näitä kenttiä ovat ainakin ne joista on määritelty viite-eheys.

relaatiot

Voit kokeilla tietojen syöttämistä esim. Ohje-tauluun tuplanapauttamalla taulun nimeä. Taulut löytyvät oletuksena ruudun vasemmassa reunassa olevasta palkista. Tietojen syöttämisessä on ongelmana oikean reseptin valitseminen koska pitäisi muistaa ulkoa jokaisen reseptin tunniste.

Tietojen syöttäminen ilman hakutaulua

Määrittelemällä hakutaulu saadaan tietojen syöttäminen huomattavasti helpommaksi. Tunnistenumeron syötön tilalle voidaan laittaa esimerkiksi alasvetovalikko, josta voi valita reseptin nimen.

  1. Valitse hiiren oikealla näppäimellä Ohje-taulu. Valitse valikosta Design View

    Design View

  2. Access saattaa ilmoittaa, että taulu on linkitetty eikä kaikkia sen ominaisuuksia voida muokata. Valitse Yes
  3. Valitse Reseptiid-kenttä napauttamalla sen tiedot sisältävää riviä. Siirry Lookup-välilehdelle.

    Lookup-välilehti

    • Valitse Display Control -alasvetovalikosta vaihtoehto Combo Box
    • Valitse Row Source Type -kohtaan vaihtoehto Table/Query
    • Valitse Row Source -kohtaan taulu josta reseptiid-kenttään kelpaavat arvot löytyvät eli resepti
    • Bound column -kohdassa kerrotaan monesko kenttä resepti-taulussa sisältää kelpuutettavan arvon. Malliratkaisussa ReseptiID-kenttä on neljäs (4). Varmista monesko kenttä on omassa tietokannassasi.
    • Column Count -kohdassa kerrotaan montako kenttää halutaan näyttää. Tähän kannattaa valita sen verran kenttiä että Bound column -kohdassa kerrottu kenttä mahtuu mukaan. Malliratkaisun mukaisessa tietokannassa valitaan neljä (4) kenttää.
    • Column Heads -kohdassa voi määrätä tarvittaessa kentille otsikot. Yleensä niitä ei tarvita joten valitaan No
    • Column Widths -kohdassa kerrotaan kuinka paljon esitystilaa varataan kullekin kentälle. Jätetään kaikki muut kentät piiloon paitsi oleellisin eli reseptin nimi. Eri kenttien pituudet erotetaan toisistaan puolipisteellä (;). Malliratkaisun mukaisessa tietokannassa kenttien pituudet olisivat 5cm;0cm;0cm;0cm
    • List Rows kertoo montako riviä vaihtoehdoista näytetään kerrallaan
    • List Width määrää alasvetovalikon leveyden
    • Limit To List määrää sallitaanko myös sellaisia arvoja joita ei listasta löydy

    Lookup-määritykset

  4. Sulje Design-ikkuna ja anna Accessin tallentaa muutokset

    Varmistus

  5. Kokeile nyt syöttää tietoja Ohje-tauluun. Nyt voit valita reseptin kätevästi alasvetovalikosta

    Reseptin valitseminen alasvetovalikosta

  6. Määrittele tismalleen samaan tapaan hakutaulut viite-eheysmääritysten mukaisesti (kts. kuva) myös seuraaville:
    • Haluat helpottaa reseptien syöttämistä eli valita reseptiin liittyvän ruokalajin alasvetovalikosta etkä muistella ruokalajiID-kentän arvoja. Määrittele lookup Resepti-taulun ruokalajiid-kentästä Ruokalaji-taulun ruokalajiid-kenttään. Kokeile miten uuden reseptin lisääminen onnistuu.
    • Tee myös reseptiin liittyvien aineiden ja niiden määrien syöttämisestä helpompaa eli tee seuraavat lookupit:
      • Lisää lookup Liittyy-taulun Resepti_Reseptiid-kentästä Resepti-taulun reseptiid-kenttään
      • Lisää lookup Liittyy-taulun Aine_Aineid-kentästä Aine-taulun aineid-kenttään
      • Lisää lookup Liittyy-taulun Yksikko_Lyhenne-kentästä Yksikko-taulun lyhenne-kenttään

    relaatiot

  7. Kokeile lookupien toimivuutta lisäämällä kauralastujen reseptiin 3 tl tomusokeria. Lisää myös reseptiin liittyvä uusi vaihe, jossa lisätään tomusokeria.

Lomakkeet

Lomakkeilla voidaan luoda lähes millainen tahansa käyttöliittymä tietokannan päälle. Lomakkeiden avulla voi esimerkiksi helposti syöttää ja selailla tietoja. Monimutkaisten lomakkeiden tekeminen edellyttää ohjelmointitaitoja ja tarkempaa ymmärrystä graafisten käyttöliittymien toiminnasta. Tällä kurssilla tyydytään tekemään lomakkeita joihin ei vielä vaadita ohjelmointitaitoja.

  1. Varmista ensin, että Access listaa kaikki tekemäsi objektit eikä pelkästääm tauluja. Valitse Taulu-listauksen ylläolevasta alasvetovalikosta All Access Objects

  2. Valitse Create-välilehdeltä "More forms"-pudotusvalikosta kohta Form Wizard.

    Form Wizard

  3. Valitse Tables/Queries-alasvetovalikosta taulu, jonka päälle haluat lomakkeen muodostaa. Valitaan tässä tapauksessa ruokalaji-taulu
  4. Valitse Available fields-listasta kentät jotka halutaan lomakkeelle. Valitse kaikki ruokalaji-taulun kentät

    Taulun ja kenttien valinta

    Ruokalajiid:tä ei tarvitsisi ottaa mukaan lomakkeelle mikäli kentän tyyppi olisi automaattisesti numeroituva (Autonumber). Valitse Next.

  5. Valitse lomakkeen ulkoasuksi Tabular
    • Tabular-muodossa lomakkeella näkyy samaan aikaan useita tietueita
    • Columnar-muodossa lomakkeella näkyy samaan aikaan vain yksi tietue.
    • Muihin ulkoasumuotoihin voit tutustua itseksesi

    Lomakkeen layout

  6. Valitse lomakkeen tyyliksi haluamasi vaihtoehto

    Lomakkeen tyyli

  7. Anna lomakkeelle nimeksi ruokalaji

    Lomakkeen nimeäminen

  8. Pääset kokeilemaan valmista lomaketta. Yritä syöttää jokin uusi ruokalaji ja sulje sen jälkeen lomake.
  9. Luo samaan tapaan aine ja liittyy-lomakkeet.

Useaan tauluun kohdistuvat lomakkeet

Lomakkeella voi myös tietyin rajoituksin syöttää tietoja samanaikaisesti useampaan eri tauluun. Jos taulujen välillä on selkeä yhden suhde moneen niin useampaan tauluun pohjautuvaa lomaketta voi yrittää tehdä.

Luodaan lomake jolla syötetään reseptin tiedot ja reseptiin liittyvät ohjeet

  1. Valitse More Forms | Form Wizard
  2. Valitse resepti-taulusta kaikki kentät. Valitse myös ohje-taulusta vaihenro- ja ohjeteksti-kentät

    Lomake kahden taulun pohjalta

  3. Valitse, että lomake esitetään by resepti eli ryhmitellään reseptien mukaan. Kerrallaan lomakkeella näytetään yhden reseptin tiedot ja kaikkien siihen liittyvien ohjeiden tiedot. Valitse myös Form with subform(s). Valinta Linked forms tekisi useita eri lomakkeita jotka olisi vain yhdistetty toisiinsa

    Lomakkeen ryhmittelyn valinta

  4. Valitse lomakkeen ulkoasuksi Datasheet
  5. Valitse lomakkeen tyyliksi haluamasi tyyli
  6. Anna lomakkeelle nimeksi Resepti ja alilomakkeelle (subform) nimeksi ohje Subform

    Lomakkeen ja alilomakkeen nimeäminen

  7. Testaa valmista lomaketta. Lisää uusi resepti ja sille muutama valmistusohje.

    Valmis lomake

Lomakkeiden muokkaaminen

Lisätään resepti-lomakkeeseen painikkeet joilla voi helposti avata muut resepti-tietokantaan liittyvät lomakkeet.

  1. Avaa resepti-lomake
  2. Siirry lomakkeen suunnittelunäkymään valitsemalla Home-välilehdeltä View-pudotusvalikosta "Design View". Suunnittelunäkymään pääset myös klikkaamalla lomakkeelta tyhjää kohtaa oikealla napilla ja valitsemalla valikosta "Design View".

    Lomake muokkaustilassa

  3. Voit halutessasi muokata kenttien paikkoja ja kokoa hiiren avulla. Oletuksena Access pitää kentät kiinni omassa muotissaan ja jos haluat liikutella niitä vapaasti niin valitse ensin haluamasi objekti ja sitten napauta Arrange-välilehdeltä Remove-painiketta.
  4. Levennä lomakealuetta hiirellä niin paljon, että painikkeille tulee tilaa oikeaan laitaan mikäli oikeassa reunassa ei ole valmiiksi tilaa.
  5. Lisää lomakkeelle uusi painike Design-välilehdeltä löytyvällä Button-painikkeella. Painettuasi Button-painiketta, voit piirtää haluamasi kokoisen napin lomakkeelle.

    Command Button

  6. Command Button Wizard aukeaa. Valitse Form Operations Open Form

    Valitaan Form Operations ja Open Form

  7. Valitse lomake, joka painikkeella avataan. Valitse Aine

    Valitse aine-lomake

  8. Valitaan, että lomake näyttää kaikki tietueet Open the form and show all the records

    Valitse Open the form and show all the records

  9. Kirjoitetaan painikkeen tekstiksi Aine

    annetaan painikkeen tekstiksi aine

  10. Painikkeen nimeksi voi jättää saman mitä Access ehdottaa

    Painikkeen nimeksi voi jättää saman mitä Access ehdottaa

  11. Kokeile painikkeen toimintaa vaihtamalla lomake käyttötilaan valitsemalla vasemmasta yläkulmasta View | Form view tai painamalla hiiren oikeaa nappia ja valitsemalla Form View.

    Jos painike ei toimi eli ei tee mitään niin kokeile auttavatko seuraavat vinkit:

Alilomakkeen lisääminen

Lomakkeelle voidaan lisätä myös uusia alilomakkeita, jotka toimivat samalla tavalla kuin aiemmin velhon avulla luotu alilomake. Lisätään resepti-lomakkeelle alilomakkeena liittyy-lomake jolloin saamme helposti yhdellä ja samalla lomakkeella syötettyä kaikki reseptiin liittyvät tiedot. Ainoastaan harvemmin tarvittavat asiat kuten aineiden, yksiköiden tai ruokalajien lisäykset ja muutokset täytyy tehdä muilla lomakkeilla.

  1. Vaihda lomake muokkaustilaan View | Design view
  2. Tee lomakkeelle lisää tilaa pystysuunnassa venyttämällä lomaketta

    Venytä lomaketta pystysuunnassa

  3. Lisää lomakkeelle alilomake Subform/Subquery-painikkeella

    Lisää lomakkeelle alilomake

    Sijoita alilomake ohje-alilomakkeen alapuolelle
  4. SubForm Wizard käynnistyy. Valitse Liittyy-taulu.

    Valitse liittyy-taulu

  5. Valitse lomakkeita yhdistävät kentät. Form/report fields -puolelle valitse reseptiid ja Subform/report fields -puolelle valitse resepti_reseptiid eli tismalleen samat kentät jotka löytyvät viite-eheysmäärittelystäkin.

    Valitse lomakkeita yhdistävät kentät

  6. Jätä alilomakkeen nimeksi Accessin ehdotus

    Jätä alilomakkeen nimeksi Accessin ehdotus

  7. Kokeile lomakkeen toimintaa valitsemalla View | Form view. Syötä jokin uusi resepti ja sille lyhyet ohjeet ja tarvittavat valmistusaineet.

    Kokeile lomakkeen toimintaa

  8. Sulje lomake ja anna Accessin tallentaa muutokset

Raportit

Raporttien avulla voidaan tulostaa siistejä yhteenvetoja suoraan taulujen tai kyselyjen pohjalta.

Valitse ensin Office-nappi | Access options | Current Database ja poista kaikki ruksit kohdasta Name AutoCorrect Options. Ominaisuus aiheuttaa kaatuilua monimutkaisempien raporttien kanssa. Valitse myös Object Designers välilehdeltä kohdasta SQL Server Compatible Syntax valinta This database päälle. Saatat joutua sulkemaan tietokannan ja avaamaan sen uudelleen, jotta pääset muuttamaan asetuksia tai jotta ne otettaisiin käyttöön.

  1. Siirry Create-välilehdelle ja valitse Report Wizard.
  2. Valitse ruokalaji-taulusta kaikki kentät

    Valitse ruokalaji-taulun kaikki kentät

    ruokalajiid-kenttä ei ole täysin välttämätön kenttä sillä ruokalajin numero ei ole tarpeellinen tieto raportissa.
  3. Älä lisää mitään ryhmittelyjä koska sellaisia ei järkevästi löydy pelkästä ruokalaji-taulusta.

    Älä ryhmittele

  4. Järjestä raportti ruokalajin nimen mukaan

    Järjestä raportti ruokalajin nimen mukaan

  5. Valitse raportin ulkoasuksi Tabular
  6. Valitse haluamasi tyylipohja
  7. Anna raportille nimeksi ruokalaji
  8. Esikatsele raportti. Voit muokata sarakkeiden kokoa sulkemalla esikatselun ja siirtymällä raportin suunnittelunäkymään (Design view) samalla tavalla kuin lomakkeidenkin kohdalla.
  9. Sulje raportti

Raportit usean taulun pohjalta

Useaan tauluun pohjautuvat raportit onnistuvat samalla tavalla kuin vastaavat lomakkeetkin.

  1. Siirry tekemään uutta raporttia Report Wizard-työkalun avulla
  2. Valitse resepti-taulusta kentät: nimi, kuvaus ja henkilomaara sekä ohje-taulusta kentät: vaihenro ja ohjeteksti.
  3. Ryhmittele raportti reseptien mukaan

    Ryhmittele raportti reseptien mukaan

  4. Älä lisää muita ryhmittelytasoja (grouping levels)
  5. Järjestä vaihenro-kentän mukaan
  6. Valitse ulkoasuksi Outline
  7. Valitse haluamasi tyyli
  8. Anna raportille nimeksi resepti
  9. Esikatsele raportti

Raportin ulkoasun korjaaminen

  1. Valitse View | Design View
  2. Nyt voit hiirellä siirtää haluamiasi kenttiä paikasta toiseen, muuttaa niiden kokoa tai jopa poistaa niitä.

    Raportin muokkausnäkymä

  3. Levennä ohjetekstin kenttä niin leveäksi kuin mahdollista.
  4. Napauta hiiren oikeaa painiketta ohjeteksti-kentän päällä ja valitse Properties. Ruudun oikeaan reunaan avautuu paneeli, jossa näkyy kulloinkin valitun kentän ominaisuuksia.

    Properties

    • Valitse Format-välilehti
    • Muuta Can Grow -kohdan arvoksi Yes, jonka jälkeen ohjeteksti-kenttä voi laajeta sen mukaan kuinka paljon tekstiä siihen on tulossa
    • Voit tutkia muitakin tarjolla olevia ominaisuuksia mutta niiden toimintaan joudut perehtymään tarkemmin Accessin avustuksen avulla
    • Sulje Properties-ikkuna
  5. Kokeile raportin uutta ulkoasua valitsemalla View | Print Preview

Kaavion lisääminen raporttiin

kaavionluonti

Dynaamiset raportit

Accessin oman raporttivelhon kyvyt loppuvat joskus kesken jos raporttiin yrittää liittää useita tauluja ja vielä ryhmitellä niiden tietoja. Monesti onkin viisainta tehdä raporttia varten oma kysely, joka hoitaa tietojen yhdistämisen useammasta taulusta, ja luoda sitten raportti suoraan tämän kyselyn pohjalta.

Luodaan seuraavaksi dynaaminen kysely, joka toimii raportin pohjana.

  1. Aloita uusi SQL-kysely (engl. Query).
    • Valitse Create-välilehdeltä kohta Query Design ja sulje esiin avautuva Show Table (suom. Näytä taulukko) -ikkuna.
    • Valitse tämän jälkeen SQL-näkymä vasemman yläkulman SQL-painikkeella ja kopioi seuraava SQL-kysely kyselyn pohjaksi:
      SELECT *
      FROM Resepti
      WHERE ReseptiID = 1 
    • Kokeile ajaa kysely. Tallenna kyselysi jollakin nimellä!
  2. Tee yksinkertainen raportti (engl. Report), joka pohjautuu edellä tekemääsi kyselyyn. Raportin voit laatia esimerkiksi ohjatun toiminnon avulla kuten edellä, valitset vain ensimmäisessä vaiheessa jonkin taulun sijasta pudotusvalikosta Query: (kyselyn nimi). Tallenna raportti jollakin nimellä.
  3. Avaa Resepti-lomake
  4. Tarkista lomakkeen reseptiID-kentän oikea nimi (engl. name). Nimen pitäisi olla reseptiID, joten muuta se tarvittaessa. Kentän ominaisuuksia pääset tarkastelemaan rakennenäkymässä (engl. Design View) tuplanapauttamalla kenttää.
    ReseptiID-kentän ominaisuudet
  5. Lisää lomakkeelle komentopainike ja valitse painikkeeseen liittyväksi toiminnoksi raporttitoimintojen alta löytyvä raportin esikatselu (engl. Report operations | Preview Report). Lisää painikkeeseen teksti Tulosta resepti.
    Painikkeen toiminnon valinta
  6. Kokeile painikkeen toimintaa menemällä takaisin lomakenäkymään (engl. Form View).
  7. Avaa edellä tekemäsi kysely valitsemalla vasemman reunan paneelin otsikossa olevasta pudotusvalikosta kohta "Queries" ja avaamalla kysely. Muuta sitä seuraavan esimerkin mukaisesti:
    SELECT *
    FROM Resepti
    WHERE ReseptiID = [Forms]![Resepti]![ReseptiID]
    [Forms]![Resepti]![ReseptiID]-kohdalla kyselyssä määritellään, että kyselyn valuuttatieto otetaan Reseptit-lomakkeelta ReseptiID-nimisestä kentästä.
  8. Siirry nyt lomakkeella haluamasi reseptin kohdalle ja kokeile tekemääsi raporttia. Raportissa pitäisi nyt näkyä aina lomakkeella näkyvissä olevan reseptin tiedot. Olet tehnyt hyvin yksinkertaisen dynaamisen kyselyn ja raportin :)

Yhteenvedot raporteissa

Raporteissa voi laskea yhteenvetoja eri kenttien tiedoista.

  1. Luo uusi raportti, joka kertoo paljonki kutakin ainetta tarvitaan yhteensä. Luo raportti Aine- ja Liittyy-taulujen pohjalta.
  2. Valitse raporttiin kentät: Nimi, Maara ja Yksikko_lyhenne.

    Valitse kentät nimi, maara ja yksikko_lyhenne

  3. Ryhmittele aineen ja yksikön mukaan.

    Ryhmittele aineen mukaan

    Ryhmittele yksikön mukaan

  4. Valitse Summary options. Tee yhteenveto (summary) määrästä eli laske määrät yhteen. Valitse näytettäväksi pelkkä yhteenveto (summary only).

    Tee yhteenveto määrä-kentästä

Raportin ulkoasu

Lisätehtävät

Jos aikaa vielä jäi niin täydennä tietokantasovelluksesi toimivuus seuraavilla toimenpiteillä:

Käyttäjien kommentit

Ile ( 2009-05-21 14:53:14 )

Olisin kokenut avuksi sen, jos englanninkielisten valikkojen ja valintojen viereen olisi kirjoitettu sulkuihin suomenkielinen valinta, esim. Valitse valikosta Design View (Rakennenäkymä)

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/tiedonhallinta/demot/demo4/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2011-03-03 09:07:25
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta