posso estar até enganado o pessoal pode até corrigir-me tive muito tempo atras problemas deste tipo com o dbgrid para somar
as colunas vinculados ao data control uma solução que achei
foi esta é criar um outro data control que contenha a soma e mostrar
num label na tela tipo assim:
Data2.RecordSource="Select sum(Valor) as Total From Tabela) "
Data2.Refresh
Label1=Data2.RecordSet!Total
Hoje passei a utilizar o msflexgrid muito mais facil de trabalhar
e manipular as informações no mesmo ....
Um exemplo de como somar no msflexgrid:
If Not TBSaldo.EOF Then
With MSFlexGrid1
.Rows = 1
.Cols = 4
.ColWidth(0) = 500
.ColWidth(1) = 800
.ColWidth(2) = 3000
.ColWidth(3) = 700
.TextMatrix(0, 0) = "Lugar"
.TextMatrix(0, 1) = "Matricula"
.TextMatrix(0, 2) = "Nome"
.TextMatrix(0, 3) = "Valor"
End With
i = 1
Do While Not TBSaldo.EOF
With MSFlexGrid1
.Rows = i + 1
.ColAlignment(0) = flexAlignCenterCenter ' alinha coluna
.TextMatrix(i, 0) = i - 0 ' autonumeração colocar zero para poder começar com 1
.ColAlignment(1) = flexAlignCenterCenter
.TextMatrix(i, 1) = TBSaldo(0)
.ColAlignment(2) = flexAlignLeftCenter
.TextMatrix(i, 2) = TBSaldo(1)
.ColAlignment(3) = flexAlignCenterCenter
.TextMatrix(i, 3) = TBSaldo(2)
End With
i = i + 1
SomaColuna = SomaColuna + TBSaldo(2)
TBSaldo.MoveNext
Loop
' Textbox com o total da coluna
Text1.Text = SomaColuna