Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Laskenta datagridilla

Rinka [17.03.2005 10:57:20]

#

Elikkä haluaisin ensin kertoa datagridissä kahden sarakkeen arvot keskenään ja sen jälkeen laskea "tulos" sarakkeen rivien summan. Tiedot tulevat tietokannasta, joten rivien määrä voi vaihdella. Kuinkahan saisin tällaisen tehdyksi?

esakom [17.03.2005 11:50:07]

#

Eikös noita "tulos" sarakkeen rivejä ole yhtä monta kuin noita kerrottaviakin rivejä? Olihan tämä dotnettia? Datagrid on kieltämättä vähän hankala, se ei itse tiedä mitä se näyttää. Pitänee kaivaa alla olevasta tietolähteestä, olisikohan jotain tähän tyyliin:

MsgBox(CType(gridTiedostot.DataSource, DataSet).Tables(0).Rows.Count)

Tämä olettaen että DataSource on DataSet.

Rinka [17.03.2005 12:35:31]

#

"Tulos" sarakkeen rivejä on kyllä yhtä monta kuin kerrottaviakin rivejä mutta laskenta suoritetaan Visual Basicillä!

BadSource [21.03.2005 06:28:42]

#

DataGrid vähän huonosti taipuu siihen, että lasketaan sen solujen tietoja keskenään. Itse suosittelisin, että teet laskut suoraan tietokannasta ja pelkästään esität ne käyttäjälle DataGrid:llä. Ohessa kuitenkin, miten laskea solujen tietoja VB6:lla.

Private Sub Command1_Click()
    Dim summa As Integer

    With Me.DataGrid1
        'DataGridissä kursori joudutaan viemään itse soluun, jos solun tietoja halutaan tarkastella...
        .Row = 0 'ensimmäinen rivi...
        .Col = 0 '...ja ensimmäinen sarake
        summa = Int(.Text)
        .Row = 0
        .Col = 1 '...toinen sarake
        summa = summa + Int(.Text)
        .Row = 0
        .Col = 2 '...ja kolmas
        MsgBox "Kolmen sarakkeen summa:" & (summa + Int(.Text))
    End With
End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta