Tietokantaliittymä-harjoituksia - huojo 2006-2007 1. Luo ODBC-yhteys esim. Asiakas.mdb-tietokantaan - Asiakas.mdb on esim. osoitteessa homes.jamk.fi/~huojo/opetus/IIZO3020 - anna tietolähteen nimeksi (User DSN) "Firmat" (tai Asiakas) 2. Kirjoita Excel VBA-koodi, jolla haetaan esim. yhden firman tiedot - vinkki: Alt+F11 avaa VB-editorin - klikkaa Book1 tms. päällä hiiren kakkosnapilla ja anna käsky Insert - Module - kopioi tai kirjoita seuraava koodi: Sub testi() ' JH 1.11.2006 ' testataan tietokantayhteyttä ' Määritellään muuttujat: Dim myCon As ADODB.Connection ' Tarkasta Tools - References Dim myRst As ADODB.Recordset Dim zSQL As String, zMyString As String Set myCon = New ADODB.Connection ' Uusi yhteys tietokantaan myCon.Open "Firmat" ' DSN eli tietolähteen nimi = Firmat Set myRst = New ADODB.Recordset ' Uusi tietuejoukko zMyString = InputBox("Asiakastunnus:", "Haetaan firma", "AlHe") zSQL = "SELECT * FROM FIRMA" zSQL = zSQL & " WHERE Asiakastunnus = '" & zMyString & "';" myRst.Open zSQL, myCon, adOpenStatic ' Sijoitetaan haun tulos lomakkeeseen: Cells(2, 2) = myRst.Fields("AsiakkaanNimi") ' B2 Cells(2, 3) = myRst.Fields("Puhelin") ' C2 myCon.Close ' Suljetaan yhteys Set myRst = Nothing Set myCon = Nothing End Sub 3. Tallenna, anna Debug-valikosta Compile, ja testaa koodi askelittain (painelemalla F8 eli Debug - Step into) Lisätehtäviä: L1. Tee aliohjelma, joka hakee HENKILO-taulusta henkilön nimen (aliohjelmalle annetaan HenkilonTunnus) L2. Tee painike, joka liitetään (assign macro) ko. aliohjelmaan. L3. Kokeile vaihtaa kantaa taustalla => toimiiko ODBC-yhteys ongelmitta? Testataan asiaa esim. seuraavasti: - kopioidaan \\ghost\huojo\... -paketti D-asemaan - ajetaan Ocelot-kannanluontiskripti MySQL:ssä ja/tai Oraclessa - luodaan ODBC-yhteys MySQL:ään, Oracleen ja/tai Ocelotiin L4. Hae tiedot MS Query -ohjelmaan käyttäen em. ODBC-määrityksiä; ohje: http://data.hamk.fi/materiaalit/tiedonhallinta2/harj/ODBC-tietolahteenMaaritys.pdf L5. Luo FIRMA-taulu MySQL:ään ja tee siihen Firmat-niminen ODBC-määritys (edellinen poistetaan), jonka jälkeen voit testata em. VBA-koodia L6. (Jos jää aikaa, niin tutustutaan DemoxGen.xls-sovellukseen)