FILTRAR E SOMAR NO DBGRID
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)"
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)"
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
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
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.....
Vc ta usando o que ADO, DAO, Data?
e como vc ja jogando no label?
Estou usando Data....
Estou colocando assim.....
Label2.Caption = total
Estou colocando assim.....
Label2.Caption = total
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
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
Substiua o objeto citado acima pelo Data.
Vc ta usando o MsFlexGrid?
e faça assim:
Label2.Caption = data.recordset.fields("total")
Vc ta usando o MsFlexGrid?
e faça assim:
Label2.Caption = data.recordset.fields("total")
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
Eu fiz o que você disse acima mas deu erro aki:
Soma = Soma + Val(DataGrid1.Text)
Run time error 13
Type mismatch
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]
Cara...fala sério......já estou a tarde toda quebrando a cabeça como fazer isso......
[S32][S51][S91]
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
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
Tópico encerrado , respostas não são mais permitidas