COMO RODAR DO ZERO?
Oi pessoal
Criei um sistema e fiz todos os testes com dados no BD e tudo correu bem.
Agora, estou testando o sistema com um BD zerado, como se fosse a primeira vez que o usuário está entrando com os dados.
Fui fazer uma consulta e deu erro dizendo [Ô]BOF ou EOF são verdadeiros...[Ô] Ou que tem que haver um dado pelo menos, porém, no código da consulta eu fiz um [Ô]IF IsNull[Ô] que se for nulo, que o valor seja zero. Como pode isso?
Desde já agradeço a atenção.
Gustavo
Criei um sistema e fiz todos os testes com dados no BD e tudo correu bem.
Agora, estou testando o sistema com um BD zerado, como se fosse a primeira vez que o usuário está entrando com os dados.
Fui fazer uma consulta e deu erro dizendo [Ô]BOF ou EOF são verdadeiros...[Ô] Ou que tem que haver um dado pelo menos, porém, no código da consulta eu fiz um [Ô]IF IsNull[Ô] que se for nulo, que o valor seja zero. Como pode isso?
Desde já agradeço a atenção.
Gustavo
posta o código em que ocorre o erro
Um campo pode ser nulo se houver registros no recordset. Agora, se não há registros no seu recordset, não tem como checar campos.
Recordset
|
|
|__ registros
|
|
|__ campos
Recordset
|
|
|__ registros
|
|
|__ campos
if rs.bof or rs.eof then
daria mais certo meu amigo
daria mais certo meu amigo
Experimente validar a quantidade de registros que o RECORDSET retornou (If rs.RecordCount > 0 Then), ou até mesmo seguir a dica do JEANCOELHO(If rs.Eof Then).
Oi pessoal
O código é esse:
Set RsSaldoAtual = New RecordSet
RsSaldoAtual.Open [Ô]SELECT * FROM SaldoAtual_LivroCaixa where DataSaldoAtualLivroCaixa = [Ô] & [Ô]#[Ô] & DataConsulta2 & [Ô]#[Ô], db adOpenStatic, adLockOptimistic
If IsNull(RsSaldoAtual([Ô]ValorSaldoAtualLivroCaixa[Ô]).Value) Then
SaldoAntual = 0
Else
SaldoAntual = RsSaldoAtual([Ô]ValorSaldoAtualLivroCaixa[Ô]).Value
End If
E o erro é aponta na linha [Ô]If IsNull...[Ô]
O código é esse:
Set RsSaldoAtual = New RecordSet
RsSaldoAtual.Open [Ô]SELECT * FROM SaldoAtual_LivroCaixa where DataSaldoAtualLivroCaixa = [Ô] & [Ô]#[Ô] & DataConsulta2 & [Ô]#[Ô], db adOpenStatic, adLockOptimistic
If IsNull(RsSaldoAtual([Ô]ValorSaldoAtualLivroCaixa[Ô]).Value) Then
SaldoAntual = 0
Else
SaldoAntual = RsSaldoAtual([Ô]ValorSaldoAtualLivroCaixa[Ô]).Value
End If
E o erro é aponta na linha [Ô]If IsNull...[Ô]
de acordo com o que os amigos postaram, faça o seguinte:
Set RsSaldoAtual = New RecordSet
RsSaldoAtual.Open [Ô]SELECT * FROM SaldoAtual_LivroCaixa where DataSaldoAtualLivroCaixa = [Ô] & [Ô]#[Ô] & DataConsulta2 & [Ô]#[Ô], db adOpenStatic, adLockOptimistic
If RsSaldoAtual.RecordCount <> 0 Then
If IsNull(RsSaldoAtual([Ô]ValorSaldoAtualLivroCaixa[Ô]).Value) Then
SaldoAntual = 0
Else
SaldoAntual = RsSaldoAtual([Ô]ValorSaldoAtualLivroCaixa[Ô]).Value
End If
Else
MsgBox [Ô]Não existem registros para calcular o saldo.[Ô], VbExclamation
End If
Set RsSaldoAtual = New RecordSet
RsSaldoAtual.Open [Ô]SELECT * FROM SaldoAtual_LivroCaixa where DataSaldoAtualLivroCaixa = [Ô] & [Ô]#[Ô] & DataConsulta2 & [Ô]#[Ô], db adOpenStatic, adLockOptimistic
If RsSaldoAtual.RecordCount <> 0 Then
If IsNull(RsSaldoAtual([Ô]ValorSaldoAtualLivroCaixa[Ô]).Value) Then
SaldoAntual = 0
Else
SaldoAntual = RsSaldoAtual([Ô]ValorSaldoAtualLivroCaixa[Ô]).Value
End If
Else
MsgBox [Ô]Não existem registros para calcular o saldo.[Ô], VbExclamation
End If
Pessoal, fiz umas mudanças e consegui hehehe
Porém, apareceu outro erro de execução em outra form agora. O aviso é [Ô]OverFlow[Ô]. O que significa isso? Algum valor sobrecarregado?
O código é esse:
txtClientesDia.txt = Format ((ClientesEL / Dias), [Ô]##00[Ô])
Sendo que o valor de [Ô]ClientesEL[Ô] e [Ô]Dias[Ô] é [Ô]0[Ô] e txtClientesDia.txt aparece como [Ô]000[Ô]
Valeu.
Porém, apareceu outro erro de execução em outra form agora. O aviso é [Ô]OverFlow[Ô]. O que significa isso? Algum valor sobrecarregado?
O código é esse:
txtClientesDia.txt = Format ((ClientesEL / Dias), [Ô]##00[Ô])
Sendo que o valor de [Ô]ClientesEL[Ô] e [Ô]Dias[Ô] é [Ô]0[Ô] e txtClientesDia.txt aparece como [Ô]000[Ô]
Valeu.
cara, não é possÃvel dividir por zero nunca, por isso Overflow
Consegui novamente arrumar esse problema.
Agora to com outro bem mais complicado hehehehe
Essa expressão:
TxtPrazoMedioReceb.Text = Format((APrazoCheqPre + ConvenioCartaoCredito) * 30 / (((AVistaVCEL + APrazoCheqsPreCEL + ValeClienteRedeForteCL + ValeEmpregadoCL + ConvCartCredCL + TicketsAlimRefeicaoCL + VendasDiversasPFCL + VendaEventualCL + DiversosCL) - DevoluçoesCL)), [Ô]#0[Ô])
Todos os valores estão zerados e como o LLAIA falou, não é possÃvel dividir por zero nunca, como posso fazer com que o sistema entenda que o resultado então é [Ô]0[Ô]?
Agradeço novamente a força.
Agora to com outro bem mais complicado hehehehe
Essa expressão:
TxtPrazoMedioReceb.Text = Format((APrazoCheqPre + ConvenioCartaoCredito) * 30 / (((AVistaVCEL + APrazoCheqsPreCEL + ValeClienteRedeForteCL + ValeEmpregadoCL + ConvCartCredCL + TicketsAlimRefeicaoCL + VendasDiversasPFCL + VendaEventualCL + DiversosCL) - DevoluçoesCL)), [Ô]#0[Ô])
Todos os valores estão zerados e como o LLAIA falou, não é possÃvel dividir por zero nunca, como posso fazer com que o sistema entenda que o resultado então é [Ô]0[Ô]?
Agradeço novamente a força.
ele está dano overlow
Tópico encerrado , respostas não são mais permitidas