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?
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.
"Tulos" sarakkeen rivejä on kyllä yhtä monta kuin kerrottaviakin rivejä mutta laskenta suoritetaan Visual Basicillä!
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.