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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  FORMATO MOEDA
Jbr
RIBEIRÃO DAS NEVES
MG - BRASIL
ENUNCIADA !
Postada em 02/05/2009 16:43 hs            
Boa tarde amigos, estou prescisando de uma forcinha, já tem um bom tempo que eu estou aprendendo vb6 só com as apostilas e dicas aqui do vbweb, mas o problema é o seguinte:
Não consigo somar os valores veja:
 
  Private Function BuscaMe()
Txt_ValorUnidade.Text = Bc!valor     'Busca a mercadoria e o valor , correspondente'
Lbl_descricao.Caption = Bc!descriçao
End Function

Public Function Calcula()
Dim Total As Currency              'multiplica a quantidade da mercadoria pelo valor'
If Txt_Quantidade.Text <> "" Then
    Total = (Val(Txt_Quantidade.Text)) * Val(Txt_ValorUnidade.Text)
   
Txt_subTotal.Text = Total
End If
End Function
Private Sub Txt_Quantidade_LostFocus()
Calcula
Soma
End Sub
 
Public Sub Soma()
Dim Total As Currency  ' soma o subtotal + o total = achar o valor da compra'
If Txt_subTotal.Text <> "" And Txt_ValorTotal.Text = "" Then
   Txt_ValorTotal.Text = Val(Txt_subTotal.Text)
 ElseIf Txt_ValorTotal.Text <> "" Then
        Txt_ValorTotal.Text = Val(Txt_ValorTotal.Text) + Txt_subTotal.Text
        Txt_subTotal.Text = ""
       
       End If
o problema é que na tabela está nesse formato R$ 8,00 ai da o erro
mas se tiver nesse formato 8 ou 8,00 ai da certo será que alguem poderia ajudar um pricipiante.
desde já muito obrigado.
ps.
vejo sempre falando para encerrar o tropico e eu ainda não endendi como faz isso, me desculpe a iguinorancia.
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 02/05/2009 17:13 hs            
O Seu problema está em declarar os valores o Val não é o indicado apra operação matemáticas, veja as conversões indicadas.
 
Lembrando que todos textbox são tratados como texto
 
CCur  -> Converte para Moeda Corrente ex: CCur( "153.20") ' resultado 153,2
CDbl  -> Converte para Double ex: CDbl("153.20") 'Resultado 153,2
CInt  -> Converte para valores inteiros ex: CInt("153.20") 'resultado 153
 
o ideal mesmo é você declarar variaveis para assumirem os valores dos textbox, EX:
 
Public Function Calcula()
Dim Total As Currency, Quant As Integer, VUnit As Currency  
If Txt_Quantidade.Text <> "" Then 
Quant  =  Txt_Quantidade.Text
VUnit =  Txt_ValorUnidade.Text
Total =  Quant  *  VUnit
Txt_subTotal.Text = Total
End If
End Function
 
Public Sub Soma()
Dim Total As Currency, SubTotal As Currency 
If Txt_subTotal.Text <> "" And Txt_ValorTotal.Text = "" Then
    Txt_ValorTotal.Text = Txt_subTotal.Text
ElseIf Txt_ValorTotal.Text <> "" Then
        SubTotal = Txt_subTotal.Text
        Total = Txt_ValorTotal.Text
        Total = Total + SubTotal
        Txt_subTotal.Text = ""
End If
 

 
Da forma descrita acima o Calculo será feito sem problemas, e o entendimento da expressão matemática torna-se mais fácil.
 
Repare que declarei Quant como inteiro, pois deduzo que as quantidades serão ex: 1, 2, 3, 4, ...
 
Se você for usar valores fracionados (ex: 1.23, 3.45, 6.57,...) você deverá declara-la como Double.
 
Espero ter ajudado até o momento.
 
Ah só para exclarecer, quando você utiliza Val ele retorna somente os primeiros valores numéricos de uma cadeia de caracteres.
 
exemplo:
 
Val("153,20") 'retorna 153
Val("289A5F78") 'retorna 289 e ignora os demais caracteres
 
até
TÓPICO EDITADO
 
Jbr
RIBEIRÃO DAS NEVES
MG - BRASIL
ENUNCIADA !
Postada em 02/05/2009 18:52 hs            
 

Public Function Calcula()
Dim Total As Currency, Quant As Integer, Vunit As Currency
If Txt_Quantidade.Text <> "" Then
   Quant = Txt_Quantidade.Text
   Vunit = Txt_ValorUnidade.Text
   Total = Quant * Vunit
Txt_subTotal.Text = Total
End If
End Function
 
Ainda não conseguir, quando faço o teste ele aponta para Vunit = txt_valorUnidade.text
será q o erro é porque na tabela está R$  no campo valor 
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 02/05/2009 21:41 hs            
não sei qual o problema mas acredito que o valor estreja sendo exibido errado.
 
como o valor em txt_valorunidade está aparecendo.
 
pois pra mim deu certo
 
 os unicos testes que ocasionaram erro foram
 
R 8,00
$ 8,00
R$_8,00
R$ 8 00
 
R$ 8,00 funciona sem problemas
 
 
 
TÓPICO EDITADO
 
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