FILTRAR E SOMAR NO DBGRID

DAVID.SP 12/01/2005 18:42:09
#60367
Boa noite!

Amigos, Não consigo realizar a soma de uma coluna no DbGrid quando filtro algumas informações, eu consegui somar os valores (TOTAL), mas ao filtrar ele continua me mostrando o valor TOTAL e não os dados filtrados. Vou colocar abaixo o código SQL para filtrar, se alguém puder me ajudar, serei muito grato....

Sql = "select Pagamento.Nome, Pagamento.Valor From pagamento where ((Pagamento.Janeiro)is Null) and ((Pagamento.Excluido)is Null)"


USUARIO.EXCLUIDOS 13/01/2005 00:16:45
#60400
Resposta escolhida
Vc já tentou:

Sql = "select Pagamento.Nome, Pagamento.Valor, sum(Pagamento.Valor) as
Total From pagamento where ((Pagamento.Janeiro)is Null) and ((Pagamento.Excluido)is Null)"

Criando um campo virtual com a função agregada sum para somar todos os valores filtrados daquela coluna.

Se isso não der certo tente isso:

Sql = "select Pagamento.Nome, Pagamento.Valor, sum(Pagamento.Valor) as
Total From pagamento Group By Pagamento.Nome Having ((Pagamento.Janeiro)is Null) and ((Pagamento.Excluido)is Null)"

Espero ter ajudado.

Sem mais,

RGAFFO
DAVID.SP 13/01/2005 00:31:32
#60405
Meu camarada Rgaffo, erro não deu.....mas quando tentei jogar para um um label, simplesmente não apareceu nada......ou será que fiz errado, eu simplesmente peguei o campo virtual TOTAL e joguei num LABEL...mas não trouxe nada.....
USUARIO.EXCLUIDOS 13/01/2005 00:37:02
#60407
Vc ta usando o que ADO, DAO, Data?
USUARIO.EXCLUIDOS 13/01/2005 00:37:46
#60408
e como vc ja jogando no label?
DAVID.SP 13/01/2005 00:46:17
#60411
Estou usando Data....
Estou colocando assim.....

Label2.Caption = total
USUARIO.EXCLUIDOS 13/01/2005 00:56:43
#60416
Tenta fazer assim:

For i = 0 To (Objeto.Recordset.RecordCount - 1)
DataGrid1.Col = 0
'Esse é o número da minha coluna que tem os valores que quero somar troque pelo número 'da sua coluna, ex: se o campo que tem que ser somado aparece no grid em 3º lugar 'coloque em vez do 0 o nº 2, a contagem começa do 0, então a 3Âê coluna é representada 'pelo número 2

DataGrid1.Row = i
'Aki o i representa o número da linha que será somado, ou seja, cara hora é uma linha até chegar a qtd total de registros no recordset

Soma = Soma + Val(DataGrid1.Text) 'Aki faz a soma
Next
MsgBox (Soma) 'Mostra a soma.

Espero ter ajudado,

Fui...
RGAFFO
USUARIO.EXCLUIDOS 13/01/2005 00:59:55
#60417
Substiua o objeto citado acima pelo Data.
Vc ta usando o MsFlexGrid?

e faça assim:


Label2.Caption = data.recordset.fields("total")
DAVID.SP 13/01/2005 01:08:15
#60421
Não ....estou usando o DbGrid.....

Eu fiz o que você disse acima mas deu erro aki:

Soma = Soma + Val(DataGrid1.Text)

Run time error 13
Type mismatch
DAVID.SP 13/01/2005 01:12:53
#60424
Acabei de fazer este último esquema que você enviou mas não deu certo.....

Cara...fala sério......já estou a tarde toda quebrando a cabeça como fazer isso......

[S32][S51][S91]
USUARIO.EXCLUIDOS 13/01/2005 01:29:11
#60426
A tarde toda, vc começou agora, já fiquei dias e semanas...
Coloque assim:

Private Sub Btn_Somar_Click()
Dim Soma As Double
For i = 0 To (Data1.Recordset.RecordCount - 1)
DBGrid1.Col = 0
DBGrid1.Row = i
Soma = Soma + Val(DBGrid1.Text)
Next
MsgBox (Soma)
End Sub
Página 1 de 3 [21 registro(s)]
Tópico encerrado , respostas não são mais permitidas