USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Erro ao comparar valores
Cid
SÃO PAULO
SP - BRASIL
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!
     
Ash Katchup
CAXIAS DO SUL
RS - BRASIL
ENUNCIADA !
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 )
   
Cid
não registrado
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!
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página