|
Postada em 20/11/2008 12:27 hs
Boa tarde, Pessoal! Estou com um probleminha simples, mas que está quebrando a minha cabeça. Estou usando o código abaixo para definir o valor de uma caixa de texto: If txtTotOper <= "135,05" Then txtCor = "2,70" ElseIf "135,05" < txtTotOper < "498,62" Then txtCor = txtTotOper * 0.02 ElseIf "498,61" < txtTotOper < "1.514,69" Then txtCor = (txtTotOper * 0.015) + "2,49" ElseIf "1.514,68" < txtTotOper < "3.029,38" Then txtCor = (txtTotOper * 0.01) + "10,06" ElseIf txtTotOper > "3.029,37" Then txtCor = (txtTotOper * 0.005) + "25,21" End If
Tanto a txtTotOper como a txtCor estão no formato Moeda. Mas, se eu digito 1.000,00 obtenho como resposta txtcor = 2,70 Se eu digito 500,00 ele me dá txtcor = 27,71 Parece que ele não está considerando o valor como moeda e comparando apenas o início do texto. Se eu alguém puder me ajudar, ficarei muito grato. Obrigado!
|
|
|
|
|
Postada em 20/11/2008 15:42 hs
No lugar de txtTotOper use Cdbl(txtTotOper). Isso converterá o texto em um número, possibilitando a comparação.
__________________
"It is the way of men to make monsters...and it is the nature of monsters to destroy their makers."
-F.E.A.R. (First Encounter Assault Recon )
|
|
|
|
Postada em 20/11/2008 19:20 hs
Não adianta! Já tentei CDbl(txtTotOper), CCur(txtTotOper), Format(txtTotOper, "#,##.00") Em todos os casos, se o valor é menor ou igual a 135,05 funciona Mas, se o valor é maior que 135,06 ele calcula txtCor = txtTotOper * 0.02 e ignora o restante do código.
|
|
|
Cid
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 21/11/2008 10:09 hs
Pessoal, obrigado pelas dicas.
Com a dica de um outro colega, complementando a dica do Ketchup, consegui resolver o prolema. ficou assim:
If CDbl(txtTotOper) <= CDbl("135,05") Then txtCor = "2,70" ElseIf CDbl(txtTotOper) > CDbl("135,05") And CDbl(txtTotOper) < CDbl("498,62") Then txtCor = txtTotOper * 0.02 ElseIf CDbl(txtTotOper) > CDbl("498,61") And CDbl(txtTotOper) < CDbl("1.514,69") Then txtCor = (txtTotOper * 0.015) + "2,49" ElseIf CDbl(txtTotOper) > CDbl("1.514,68") And CDbl(txtTotOper) < CDbl("3.029,38") Then txtCor = (txtTotOper * 0.01) + "10,06" ElseIf CDbl(txtTotOper) > CDbl("3.029,37") Then txtCor = (txtTotOper * 0.005) + "25,21" End If
Valeu!
Parabéns a todos pelo espírito de colaboração!
|
|
|
|