Access-tehtäviä

11) Tee ATK-Ajokorttikoulun tietokantatehtävät. Polku: A-OSAAJA, Opiskelu, 5 Tietokannat, Harjoitukset. Ohjeet ovat vanhalle versiolle. Käytä apuna Komento-opasta.

12) Tee Yritys-niminen tietokanta, jossa on kolme taulukkoa, yhteydet ja taulukoiden käyttöön liittyvät lomakkeet. Lomakkeet käynnistetään päävalikosta.

13) Tee tietokanta, johon lisäät ulkoiset tiedot asiakkaista ja tuotteista. Tee tehtävän 12 tapainen kaupat-taulukko siten, että lisäät hakusarakkeet tuotteille ja asiakkaille.

14) Lisää edelliseen tietokantaan lomakkeet ja tee siitä sovellus. Palauta.

15) Lisää tietokantaan uusi taulukko Tilaukset ja muuta hakusarakkeet. Tilaukset-taulukko mahdollistaa monen tuotteen tilaamisen samalla kertaa. Yhteydet ovat alla olevan esimerkin näköiset.

16) Toteuta alla olevan rakenteen mukainen tietokanta. Suunnittele taulukot, yhteydet, lomakkeet ja päävalikko. Lisää kaksi tuoteryhmää, neljä tuotetta, neljä asiakasta, kolme toimittajaa sekä viisi ostoa ja myyntiä. Palauta.

 

 

 

 

 

 

 

 

 

 

Johdanto

VBA on lyhennys sanoista Visual Basic for Applications. Se on Microsoft Officen ohjelmien mukana tuleva ohjelmointikieli, jolla voidaan luoda ja muokata makroja tai lisätä ohjelmiin uusia toimintoja.

Ohjelmointi tehdään Microsoft Visual Basic-editorilla johon pääsee esim. Excelin sisältä näppäinyhdistelmällä ALT-F11. Jos nauhoitat Excelissä makron, syntyy uusi moduli. Editorissa moduleita voi tehdä itse valitsemalla Insert, Module.

 

Kuvassa moduli, johon on kirjoitettu koodia.

Syöttö, käsittely ja tulostus 1

Sub nimi()

'Määrittelyt
Dim etunimi, sukunimi, kokonimi As String

'Syöttö
etunimi = InputBox("Kirjoita etunimesi")
sukunimi = InputBox("Kirjoita sukunimesi")

'Käsittely
kokonimi = etunimi & " " & sukunimi

'Tulostus
MsgBox ("Nimesi on " & kokonimi)

End Sub

Muuttujatyypit

Dim KokonaislukuMuuttuja as Integer

Dim MerkkijonoMuuttuja as String

Dim MikatahansaMuuttuja as Variant

Dim DesimaalilukuMuuttuja as Double

Dim KokonaislukuTaulukko(1 to 10) As Integer

Const Vakio as Integer = 10

Operaattorit

summa = 5 + 2

erotus = 5 - 2

tulo = 5 * 2

osamaara = 5 / 2

kókonaisosa = 5 \ 2

jakojaannos = 5 MOD 2

potenssi = 5 ^ 2

merkkijono = merkkijono1 & merkkijono2

merkkijono = merkkijono1 + merkkijono2

Syöttö, käsittely ja tulostus 2

Sub laskutoimitus()

'Muuttujien määrittelyt
Dim luku1, luku2, tulos As Double

'Syöttö
luku1 = InputBox("Kirjoita 1. luku")
luku2 = InputBox("Kirjoita 2. luku")

'Käsittely
tulos = Val(luku1) + Val(luku2)

'Tulostus
MsgBox ("Summa on " & Str(tulos))

End Sub

Valintarakenteet

If (ehto) Then
' toiminto
End If

If (ehto) Then
' toiminto 1
Else ' muuten
' toiminto 2
End If

If (ehtolause1) Then
' toiminto 1
Elseif (ehtolause2) Then
' toiminto 2
Else ' muuten
' toiminto 3
End If

Select Case TestiArvo
Case Is >= 100
' toiminto 1
Case Is >= 50
' toiminto 2
Case Is >= 0
' toiminto 3
Case Else ' muuten
' toiminto 4
End Select

Ehdot

'Yhtä suuri kuin
Luku1 = Luku2

'Pienempi kuin
Luku1 < Luku2

'Suurempi kuin
Luku1 > Luku2

'Pienempi tai yhtä suuri kuin
Luku1 <= Luku2

'Pienempi tai yhtä suuri kuin
Luku1 >= Luku2

'Erisuuri kuin
Luku1 <> Luku2

'Tosi jos molemmat ehdot toteutuvat
ehto1 AND ehto2

'Tosi jos yksikin ehto toteutuu
ehto1 OR ehto2

Toistorakenteet

Do While (ehto)
'toimenpiteet
Loop

For Laskuri = 1 To 10 Step 1
'toimenpiteet
Next Laskuri

Tehtävät

Tee Ratolin tehtävät VBA-kielellä. Palauta tehtävät.

Harjoittele makrojen nauhoittamista Asta Havaskarin taulukkolaskentaharjoituksilla 1, 6, 11 ja 15. Tutustu koodiin ja siivoa siitä tarpeettomat osat.

Hae Asiakkaat.xls. Tee makro, joka lisää rivin ja siirtää osoitetiedot tyhjälle riville. Muokkaa koodia niin, että loput tiedot siirretään silmukalla. Tee sitten sama temppu toisin päin ja palauta koodi sähtöpostiin.

Lomakkeet

Tee lomake editorissa  valitsemalla Insert, UserForm.

Muuta lomakkeen ominaisuuksia ja piirrä käyttöliittymä Controls-työkaluilla.

Lisää koodia kaksoisnäpäyttämällä kontrollia.

Käy ennen tehtäviä läpi Aki Taanilan materiaali ja tee esimerkit sekä harjoitukset.

Aliohjelmat

KiviPaperiSakset.xls.
Lainalaskuri
Lomakeharjoitus.xlsm
Lomakeharjoitus2.xlsm
Tilavuuslaskuri
alue.xlsm

Tehtävät

1) Tee Ratolin tehtävä 4 VBA-kielellä lomakeversiona.

2a) Tee sovellus, joka laskee auton polttoaineen kulutuksen ja polttoainekustannukset/km. Syöttötietona lomakkeessa on kilometrit, litrat ja litrahinta.

2b) Tee lomakkeesta automaattisesti käynnistyvä.

2c) Lisää sovellukseen ominaisuus, joka lisää annetut tiedot taulukkoon.

2d) Muuta ohjelma sellaiseksi, että laskenta tehdään soluissa.

3a) Tee makro, joka aktivoi 20 x 20 solun alueen suurimman solun.

3b) Tee makro, joka värittää 20 x 20 solun alueen suurimman solun siniseksi ja pienimmän punaiseksi.

3c) Tee ohjelma, joka arpoo 100 satunnaislukua väliltä 1-10 ja tallentaa taulukkoon, kuinka monta kertaa kukin luku esiintyy.

3d) Tee makro, joka värittää valitun alueen suurimman solun siniseksi ja pienimmän punaiseksi.

4a) Tee Ventti -peli. Satunnaisluvun saa funktiolla rnd(). Satunnaisluvut 1-13 saa: luku =  int(rnd()*13+1)

4b) Tee kivi-paperi-sakset -peli.

4c) Tee jatsipeli, miinaharava, oma sovellus tai kaikki.

5) Tee ajanottojärjestelmä. Taulukkoon tarvitaan osallistujan nimi, lähtöaika ja saapumisaika. Ajat saadaan funktiolla now(). Tee lopuksi tulostaulu.

6) Muokkaa lainataulukkoa siten, että Lainan tiedot syötetään lomakkeella ja maksutapa valitaan painikkeilla.

7) Tee kortistotyyppinen sovellus, jossa on tietueen lisäys, muokkaus ja poisto. Lisäksi tietueet voidaan lajitella eri kenttien perusteella. Lisää myös haku. Käytä apuna Excelin luettelo-ominaisuuksia.

8) Tee sovellus, joka kysyy kaksi IP-osoitetta, aliverkon peitteen ja ilmoittaa, ovatko IP:t samassa aliverkossa. Tarkista IP-osoitteiden laillisuus. Lisätietoa.

9) Tee sovellus, joka saa verkon osoitteen ja aliverkon peitteen, ilmoittaa aliverkkojen määrän ja niiden IP-osoitteet sekä verkossa olevien koneiden määrän.

10) Muuta sovellusta siten, että se hallitsee myös yliverkotuksen. Lisätietoa.

 

 

 

Koe

1) Tee ohjelma, joka arpoo 100 satunnaislukua väliltä 1-10 ja tallentaa taulukkoon, kuinka monta kertaa kukin luku esiintyy.

2) Tee lomakepohjainen yksinkertainen nelilaskin. Lisää taulukkoon myös "paperi", johon laskutoimitukset tallennetaan.
 

 

 

 

 

Linkit
Aki Taanila
Ohjelmoinnin perusteet
VBA-perusteet erittäin lyhyesti
Excel-ohjelmoinnin sivusto
VBA for Excel (Macros)