SOMAR DADOS DE UMA TABELA
Pessoal,
Estou fazendo uma função, onde é realizado uma consulta no banco MySQL, e com o resultado, é somado um campo chamado [ô]Valor[ô], ou seja, será somado o campo [ô]Valor[ô] de todos os dados que a consulta encontrar.
Estou fazendo assim:
[txt-color=#e80000]Set desp = New ADODB.Recordset
Dim TotDesp As Currency
SQL = [Ô]Select * from caixa[Ô]
desp.Open [Ô]Select sum(valor) as valor from caixa where tipo = [ô][Ô] & [Ô]debito[Ô] & [Ô][ô] and data = [ô][Ô] & txtData.Text & [Ô][ô][Ô], gConexao
TotDesp = CCur(desp([Ô]valor[Ô]))
txtDespesas.Text = Format(CDbl(desp([Ô]valor[Ô])), [Ô]Currency[Ô])
txtDespesas.Text = Format(txtDespesas.Text, [Ô]Currency[Ô])
[/txt-color]
Executando o código acima, e se encontrado dados, funciona bem, mas, o problema é se não for encontrado nenhum dado, é apresentado um erro, [txt-color=#e80000][Ô]Invalid Use of Null[Ô],[/txt-color] preciso de um tratamento de erro, para ser informado por uma mensagem se não for encontrado nada.
Vlw
Estou fazendo uma função, onde é realizado uma consulta no banco MySQL, e com o resultado, é somado um campo chamado [ô]Valor[ô], ou seja, será somado o campo [ô]Valor[ô] de todos os dados que a consulta encontrar.
Estou fazendo assim:
[txt-color=#e80000]Set desp = New ADODB.Recordset
Dim TotDesp As Currency
SQL = [Ô]Select * from caixa[Ô]
desp.Open [Ô]Select sum(valor) as valor from caixa where tipo = [ô][Ô] & [Ô]debito[Ô] & [Ô][ô] and data = [ô][Ô] & txtData.Text & [Ô][ô][Ô], gConexao
TotDesp = CCur(desp([Ô]valor[Ô]))
txtDespesas.Text = Format(CDbl(desp([Ô]valor[Ô])), [Ô]Currency[Ô])
txtDespesas.Text = Format(txtDespesas.Text, [Ô]Currency[Ô])
[/txt-color]
Executando o código acima, e se encontrado dados, funciona bem, mas, o problema é se não for encontrado nenhum dado, é apresentado um erro, [txt-color=#e80000][Ô]Invalid Use of Null[Ô],[/txt-color] preciso de um tratamento de erro, para ser informado por uma mensagem se não for encontrado nada.
Vlw
Set desp = New ADODB.Recordset
Dim TotDesp As Currency
SQL = [Ô]Select * from caixa[Ô]
desp.Open [Ô]Select sum(valor) as valor from caixa where tipo = [ô][Ô] & [Ô]debito[Ô] & [Ô][ô] and data = [ô][Ô] & txtData.Text & [Ô][ô][Ô], gConexao
If Not IsNull(desp([Ô]valor[Ô])) Then
TotDesp = Format(desp([Ô]valor[Ô]),[Ô]currency[Ô])
txtDespesas.Text = Format(TotDesp,[Ô]currency[Ô])
Else
txtDespesas.Text = [Ô]0,00[Ô]
End If
é isto mesmo, funcionou legal, mas, não consegui fazer com que somasse as casas decimais, ou seja, apenas está somando os inteiros.
Vlw
Vlw
qual é o tipo de dados do campo valor?
o tipo não é Moeda ou Unidade Monetária ?
Modifiquei todos para Currency, e aconteceu que, na soma o sistema está jogando o valor 0,00, ou seja, não está encontrando valor.
Set desp = New ADODB.Recordset
Dim TotDesp As Currency
SQL = [Ô]Select * from caixa[Ô]
desp.Open [Ô]Select sum(valor) as valor from caixa where tipo = [ô][Ô] & [Ô]debito[Ô] & [Ô][ô] and data = [ô][Ô] & txtData.Text & [Ô][ô][Ô], gConexao
If desp.Recordset <> 0 Then
If Not IsNull(desp([Ô]valor[Ô])) Then
TotDesp = Format(desp([Ô]valor[Ô]),[Ô]currency[Ô])
txtDespesas.Text = Format(TotDesp,[Ô]currency[Ô])
Else
txtDespesas.Text = [Ô]0,00[Ô]
End If
Else
MsgBox [Ô]Nenhum registro encontrado.[Ô]
End If
Dessa forma, verifique se tem algum registro sendo retornado.
Bom LLAIA, fiz tudo, e nada, a unica informação no txtdespesas.text é [Ô]0,00[Ô], e fiz uma analise no código e verifiquei que ele encontra sim os dados, mas, não exibe de forma correta ou seja não soma.
Vlw
Vlw
colocando breakpoints no código ele tá passando por onde?
Select if(isnull(sum(valor)),0,sum(valor)) as valor from caixa where tipo = [ô][Ô] & [Ô]debito[Ô] & [Ô][ô] and data = [ô][Ô] & txtData.Text & [Ô][ô][Ô],
Pessoal valeu a ajuda, mas, consegui com este código:
[txt-color=#e80000]Set desp = New ADODB.Recordset
desp.Open [Ô]Select valor,tipo,data from caixa where tipo = [ô][Ô] & [Ô]debito[Ô] & [Ô][ô] and data = [ô][Ô] & txtData.Text & [Ô][ô][Ô], gConexao
TotDesp = 0
While Not desp.EOF
TotDesp = TotDesp + CCur(desp([Ô]valor[Ô]))
desp.MoveNext
txtDespesas.Text = TotDesp
txtDespesas.Text = Format(txtDespesas.Text, [Ô]Currency[Ô])
Wend[/txt-color]
[txt-color=#e80000]Set desp = New ADODB.Recordset
desp.Open [Ô]Select valor,tipo,data from caixa where tipo = [ô][Ô] & [Ô]debito[Ô] & [Ô][ô] and data = [ô][Ô] & txtData.Text & [Ô][ô][Ô], gConexao
TotDesp = 0
While Not desp.EOF
TotDesp = TotDesp + CCur(desp([Ô]valor[Ô]))
desp.MoveNext
txtDespesas.Text = TotDesp
txtDespesas.Text = Format(txtDespesas.Text, [Ô]Currency[Ô])
Wend[/txt-color]
Tópico encerrado , respostas não são mais permitidas