Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nossila

Problema com Fatura

Recommended Posts

Pessoal criei esse código para as vendas de um controle de estoque. Portanto veja os códigos:

 

Dim vtotal As Currency

Dim vdesconto As Integer

Dim vpagamento As Currency

Dim vtroco As Currency

Dim Orders As New Adodb.Recordset

Dim lst As ListItem

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Private Sub Form_Load()

 

txtTotal.Text = 0

txtDesconto.Text = 0

txtPagamento.Text = 0

 

 

End Sub

 

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Private Sub txtDesconto_LostFocus()

If txtDesconto.Text = "" Then

txtDesconto.Text = 0

txtTotal.Text = (Format(ComputeAmount, "####,##0.00"))

Else

vtotal = txtTotal.Text

vdesconto = txtDesconto.Text

vtotal = (vtotal * (1 - (vdesconto) / 100))

txtTotal.Text = vtotal

End If

 

End Sub

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Private Sub txtPagamento_LostFocus()

 

If txtPagamento.Text < txtTotal.Text Then

 

MsgBox "Valor do pagamento insuficiente", vbInformation, "Insuficiente"

txtPagamento.SetFocus

 

Else

vpagamento = (txtPagamento.Text)

vtroco = Val(txttroco.Text)

vtroco = vpagamento - vtotal

txttroco.Text = CCur(Format(vtroco, "####,##0.00"))End If

 

End Sub

 

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Function ComputeAmount() As String

Dim X As Long

Dim total As Double

 

For X = 1 To lvprod.ListItems.Count

 

total = (total + lvprod.ListItems(X).SubItems(7))

 

Next X

ComputeAmount = Format(total, "###,##0.00")

 

End Function

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Portanto, não seria um erro, mas não esta fazendo o desejado. Exemplo : txttotal = 1.000,70 depois digito o percentual do txtdesconto = 5 o calculo é executado, mas o txtpagamento = 1000,00 o calculo é executado e não acusa o valor inferior ao txttotal e calcula a diferença a menor = -0,70

Como faço para resolver isso.

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você deveria fazer as comparações (txtPagamento.Text < txtTotal.Text, por exemplo) com os *valores* (1000.70 e 1000.00) e não com os textos (1.000,70 e 1.000,00). Para isso você pode utilizar a função CDBl().Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.