Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Tratamento de erro com calculos de prestação


Bred

Pergunta

Bom dia pessoal! hoje eu trago aqui um exemplo onde estar ocorrendo um erro de depuração no codigo quando clico no botão "calcular prestações" antes de preencher os campos "data" e "prestação" preciso tratar esse erro mas não sei como, precizo de uma dica de como osso fazer isso... desde já fico muito grato pela ajuda.

exemplo: http://www.4shared.com/file/4igIWpXZ/Cauclo_de_prestao.html

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

o erro está aqui:

Private Sub Comando12_Click()
Dim i, strPrestacoes As Integer
Dim strValor As Currency
Dim strData As Date

strPrestacoes = [Forms]![Credito]![Contrato]![Meses]
strValor = [Forms]![Credito]![Contrato]![Valor] / strPrestacoes
strData = [Forms]![Credito]![Contrato]![Data]

If Parcela = "" Or IsNull(Parcela) Or Parcela = "0" Then
For i = "" To strPrestacoes
    DoCmd.GoToRecord , , acNewRec
    Me.Parcela = i
    Me.Valor = strValor
    Me.Vencimento = DateAdd("m", i - 1, strData)
    Next
Else
MsgBox "Já foram calculadas as prestações deste contrato." _
& " Para calcular novamente tem que apagar as actuais.", vbCritical, "Erro"
End If

End Sub
for i = "" ????? entenda.. i é uma variavel do tipo INTEIRO.. ou seja Dim i, strPrestacoes As Integer isso significa que ela é um NUMERO INTEIRO = INTEGER então o vba ta interpretando.. for I = "" ou seja para I = nada ?? nada não é um numero inteiro.. nada é nulo(null) então voce tem que alterar esse "" para 0 logo fica: for I = 0 então seu codigo corrigido:
Private Sub Comando12_Click()
Dim i, strPrestacoes As Integer
Dim strValor As Currency
Dim strData As Date

strPrestacoes = [Forms]![Credito]![Contrato]![Meses]
strValor = [Forms]![Credito]![Contrato]![Valor] / strPrestacoes
strData = [Forms]![Credito]![Contrato]![Data]

If Parcela = "" Or IsNull(Parcela) Or Parcela = "0" Then
For i = 0 To strPrestacoes
    DoCmd.GoToRecord , , acNewRec
    Me.Parcela = i
    Me.Valor = strValor
    Me.Vencimento = DateAdd("m", i - 1, strData)
    Next
Else
MsgBox "Já foram calculadas as prestações deste contrato." _
& " Para calcular novamente tem que apagar as actuais.", vbCritical, "Erro"
End If

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

humm entedi perfeitamente a sua correção, quando faço a alteração o erro realmente desaparece mas a divisão das parcela não dão certo ele nunca divide o numero de parcelas que pedimos sempre põe o numero de parcelas menor doque o digitado ai o valor final não bate certo... Se não for abusar muito da sua boa vontade queiria que você fizesse essa alteração no explo citado acima e obsevasse como se comporta o calculo apos a correção....

vou ser muito grato se puder me ajudar a resolver esse problema...

Link para o comentário
Compartilhar em outros sites

  • 0

Verifiquei que você está usando as expressões nulas como parte de calculo, então mudei sei código utilizando nz() para prever isso e repassar valores validos, veja o código:

Dim i, strPrestacoes As Integer
Dim strValor As Currency
Dim strData As Date

strPrestacoes = Nz([Forms]![Credito]![Contrato]![Meses], 1)
strValor = Nz([Forms]![Credito]![Contrato]![Valor], 0) / strPrestacoes
strData = Nz([Forms]![Credito]![Contrato]![Data], Date)

If Parcela = 0 Or IsNull(Parcela) Then
    For i = 1 To strPrestacoes
        DoCmd.GoToRecord , , acNewRec
        Me.Parcela = i
        Me.Valor = strValor
        Me.Vencimento = DateAdd("m", i - 1, strData)
    Next
Else
MsgBox "Já foram calculadas as prestações deste contrato." _
& " Para calcular novamente tem que apagar as actuais.", vbCritical, "Erro"
End If

Acho que com isso você resolve, certo?

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo MrMALJ... sou muito grato pela grande ajuda que me deste o problema foi resouvido, agradeço tambem ao colega Humm pela atenção e por ter disponibilizado seu tempo pra me ajudar a resolver esse problema..... mais uma vez muito obrigado a todos.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...