Minulla on Access tietokanta, jossa on myyntipäivä ja myynnin arvo. Yhteys on muodostettu ADO:lla. Haluaisin tulostaa kaikki myynnit tietyn päivän jälkeen ja laskea niiden yhteishinnan.
Miten se kannattaisi tehdä VB 6.0:lla?
Yksi vaihtoehto on Visual Basicin Data Report. Data Reportia on varsin helppo käyttää, mikäli raportit eivät ole kovin monimutkaisia. Tässä on esimerkki Data Reportin käytöstä ADO:lla, muutenhan se toimii DataEnvironmentin kautta.
Tek-Tips:llä on varsin pitkä ja laaja keskustelu Data Reportin käytöstä, josta saatta (hyvin luultavaa) löytyä apua mahdollisiin ongelmiin.
Jäi vielä ongelmia:
1.) Miten saadaan tulostus alkamaan siitä päivästä, josta halutaan. Päivä on (frmMyynti.txtAika) lomakkeella, josta DataReport1.Show kutsutaan.
2.) Miten DataRepot lopetetaan niin, että se palaisi ohjelman päälomakkeelle?
1.) Lisäät Select-lauseeseen päivämääräehdon (pvm>#1-1-2004# tai pvm BETWEEN #1-1-2004 AND #2-1-2004#), jonka sitten välität raportille. Tuo päivämäärien käsittely on kyllä varsin syvältä. Se pitää olla muotoa kk-pp-vvvv (huomaa viivat) ja laittaa vielä risuaitojen väliin. Jos sitä käyttää haussa ehtona, niin se kannattaa muotoilla Format-lauseella oikeaksi, jolloin saa käyttää meille tutumpia päivämäärämuotoja.
Seuraava hakee Tunnukset-taulusta kaikki tunnukset, jotka on luotu tämän kuun alusta tähän päivään (24.11.2004) mennessä:
SELECT t.Tunnus FROM Tunnukset AS t WHERE t.TunnusLuotu BETWEEN #11-1-2004# AND format(NOW,"mm-dd-yyyy");
2.) Sulje DataReport sieltä oikean ylänurkan ruksista, jolloin se ainakun mulla palautui formille mistä oli lähdettykkin, ellei välissä ole käsitelty muita ohjelmia/ikkunoita. Tietysti voit lisätä DataReportiin seuraavan koodin:
Private Sub DataReport_Terminate() Form1.SetFocus End Sub
jolla aktivoidaan Form1, kun poistutaan DataReportista. DataReportin koodiin pääset klikkaamalla DataReportia oikealla korvalla Project-ikkunassa ja valitsemalla View Code.
Aihe on jo aika vanha, joten et voi enää vastata siihen.