FILTRAR E SOMAR NO DBGRID
perguntinha:
pq o loop começou do zero ate o valor do tamanho do aqruivo -1???
as linhas (row) do dbgrid começão a numeração pelo zero??? num é pelo 1???
pq o loop começou do zero ate o valor do tamanho do aqruivo -1???
as linhas (row) do dbgrid começão a numeração pelo zero??? num é pelo 1???
Camaradas, olha só
numa primeira listagem deu certo.....trouxe a soma da coluna, mas ele listou apenas 7 registros, quando tento listar tudo que são apenas 9, ele dá erro no registro 8 "row number error" e o erro apresenta exatamente na linha a linha "i" e encrementada o valor da linha que é 8........
numa primeira listagem deu certo.....trouxe a soma da coluna, mas ele listou apenas 7 registros, quando tento listar tudo que são apenas 9, ele dá erro no registro 8 "row number error" e o erro apresenta exatamente na linha a linha "i" e encrementada o valor da linha que é 8........
Galera, percebi o que está acontecendo.....
Quando a quantidade de registros ultrapassam o tamanha o DbGrid, ou seja, quando as barras de rolagem vertical aparecem.....apresenta o erro Invalid row number, mas se eu aumentar o tamanha o DbGrid de acordo que apareçam todos os registros filtrados ele mostra o resultado numa boa.....mas o problema é quando eu tiver um número muito grande de registros filtrados.......
Será que alguém saberia dizer como resolver esse problema....já mexi nas propriedades do DbGrid e nada.....
Muito obrigado.....
Quando a quantidade de registros ultrapassam o tamanha o DbGrid, ou seja, quando as barras de rolagem vertical aparecem.....apresenta o erro Invalid row number, mas se eu aumentar o tamanha o DbGrid de acordo que apareçam todos os registros filtrados ele mostra o resultado numa boa.....mas o problema é quando eu tiver um número muito grande de registros filtrados.......
Será que alguém saberia dizer como resolver esse problema....já mexi nas propriedades do DbGrid e nada.....
Muito obrigado.....
Sem querer abusar da boa vontade de vocês, como faz para que a soma apareça os centavos, pois só está aparecendo o valor por inteiro, já tentei tranformá-lo com o format, mas não funcionou.....bom eu coloquei assim
dim soma as double
soma = format&(soma, "#,##0.00")
Mas mesmo assim não deu certo...
Fico muito agradecido.....
dim soma as double
soma = format&(soma, "#,##0.00")
Mas mesmo assim não deu certo...
Fico muito agradecido.....
DAVID_SP vamos aos casos:
Para filtrar:
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "Select * from resultados where Nome = '" & TextNome.Text & "' and Data = '" & TextData.Text & " '"
Adodc1.Refresh
O seu grid deve estar ligado ao ado e as condições vc pode adapata-las
Para somar:
Dim soma As Double
Adodc1.Recordset.MoveFirst
While Not Adodc1.Recordset.EOF
soma = soma + Adodc1.Recordset.Fields("Valor")
Adodc1.Recordset.MoveNext
Wend
LabelResultado = soma
cria um loop percorrendo todos os registro contidos no ado somando os valores da coluna Valor
Para filtrar:
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "Select * from resultados where Nome = '" & TextNome.Text & "' and Data = '" & TextData.Text & " '"
Adodc1.Refresh
O seu grid deve estar ligado ao ado e as condições vc pode adapata-las
Para somar:
Dim soma As Double
Adodc1.Recordset.MoveFirst
While Not Adodc1.Recordset.EOF
soma = soma + Adodc1.Recordset.Fields("Valor")
Adodc1.Recordset.MoveNext
Wend
LabelResultado = soma
cria um loop percorrendo todos os registro contidos no ado somando os valores da coluna Valor
Ok Camaradas,
Muito obrigado pela força, funcionou direitinho....mas tem outro problema, sem querer abusar da vontade de vocês........ele está mostrando o resultado inteiro, não mostra valores quebrados e outra coisa, quando lista muitos registros, onde o DbGrid tem que ativar a barra de rolagem vertical ele aparece o erro 6148 (Invalid row number), ou seja, se os registros listados forem menor ou igual ao tamanho do Grid beleza, caso contrário, aparece o erro.
Alguém saberia dizer o que é isso?????
Muito obrigado pela força, funcionou direitinho....mas tem outro problema, sem querer abusar da vontade de vocês........ele está mostrando o resultado inteiro, não mostra valores quebrados e outra coisa, quando lista muitos registros, onde o DbGrid tem que ativar a barra de rolagem vertical ele aparece o erro 6148 (Invalid row number), ou seja, se os registros listados forem menor ou igual ao tamanho do Grid beleza, caso contrário, aparece o erro.
Alguém saberia dizer o que é isso?????
Coloca no looping para sempre faze isso:
DBGrid1.Scroll 0, DBGrid1.VisibleRows
Espero ter ajudado.
RGAFFO
DBGrid1.Scroll 0, DBGrid1.VisibleRows
Espero ter ajudado.
RGAFFO
DAVID_SP mesmo no exemplo que eu te passei? Eu não faço referencia nenhuma as linhas do dbgrid mas sim ao proprio campo dentro do banco de dados.
Ok Rgaffo e Paulohsv...
Rgaffo coloquei mas não adiantou, mas o que você colocou foi para exibir todas as linhas, no caso as linhas estão visÃveis, existe uma barra de rolagem mas o problema é que quando o registro não é mostrada, porque deverá abaixo a rolagem para vê-lo ele dá erro, agora se no filtro mostrar todos os registros no tamanho do DbGrid, sem ativar a rolagem, ai funciona normalmente.......
Rgaffo coloquei mas não adiantou, mas o que você colocou foi para exibir todas as linhas, no caso as linhas estão visÃveis, existe uma barra de rolagem mas o problema é que quando o registro não é mostrada, porque deverá abaixo a rolagem para vê-lo ele dá erro, agora se no filtro mostrar todos os registros no tamanho do DbGrid, sem ativar a rolagem, ai funciona normalmente.......
Senhores, consegui.......agora ele consegue trazer todos os registros sem problemas.....mas o total da soma da coluna só mostra o valor por inteiro, a variável está como Double e mesmo assim não mostra valores picados........já tentei de tudo....alguém poderia me dar uma luz?????
Muito obrigado,
Muito obrigado,
Tópico encerrado , respostas não são mais permitidas