Ir para conteúdo

POWERED BY:

Arquivado

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

antheu

Conversão de variaveis

Recommended Posts

Olá Galera :D

 

estou tendo um problema com uma certa variável (chata :D ) que estou usando.

 

tenho uma página com um formulário que lança um valor currency para outra página.

Nessa segunda página, eu tenho que inserir esse valor em uma tabela (command Insert);

 

Depois eu tenho que somar esse valor com um campo de outra tabela:

 

dim SumValorSumValor =  CCur(rs_02.Fields.Item("Valor2").Value + Request.QueryString("Valor1"))
note que eu converto o resultado da operação para o formato meoda

 

Até aí tudo bem

 

O problema é que na hora de fazer o update da tabela 2 ele não aceita o formato. E tipo de dados foi definido na tabela como moeda:

 

set CmmUp = Server.CreateObject("ADODB.Command")CmmUp.ActiveConnection = MM_Db_Edem_STRINGCmmUp.CommandText = "UPDATE Tabela2 SET Valor2 =" & SumValorRec & " WHERE id_Bal =" & Request.QueryString("HFSEL") & "AND id_DetValRec=" & Request.QueryString("HF_idDVal") & ""CmmUp.CommandType = 1CmmUp.CommandTimeout = 0CmmUp.Prepared = trueCmmUp.Execute()

 

detalhe o único formato que ele esta aceitando é o CInt e é exatamente esse que eu não quero :D

 

Por favor me digam aonde eu estou errando? ;)

 

valeu galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para gravar na base já formatado como moeda, o tipo de campo deve ser de ponto flutuante. E deve-se tomar cuidado com as vírgulas e pontos... Veja que o formato americano é diferente do brasileiro para esse tipo de conversão. E pode ter certeza que é isso que está ocorrendo contigo, perceba:um valor assim - 1.000.000,55 - exatamente como você deve estar tentando gravar (currency), deve ser gravado assim - 1000000.55 - ou seja, o ponto é só para a casa decimal.Espero ter ajudado.Abraços,Fernando Botelho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,Hummm... Dá pra fazer isso sem função alguma, só pensar em como dar um REPLACE nos pontos, vírgulas, etc...Poderiam ser 3 replaces, um dentro do outro... Veja:1.500.200,25 -> original;1;500;200,25 -> após o primeiro replace;1500200,25 -> após 2º replace;1500200.25 -> após o último replace;Abraços,Fernando Botelho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,Hummm... Dá pra fazer isso sem função alguma, só pensar em como dar um REPLACE nos pontos, vírgulas, etc...Poderiam ser 3 replaces, um dentro do outro... Veja:1.500.200,25 -> original;1;500;200,25 -> após o primeiro replace;1500200,25 -> após 2º replace;1500200.25 -> após o último replace;Abraços,Fernando Botelho

:( Ei cara valeu mesmo Agora o código ficou redondo :unsure: Obrigado pela dicaAbraços,Ismael Costa

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.