Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

[Resolvido] FormatCurrency, como tratar?

Recommended Posts

irmãos!

 

Tenho um banco que estou testando, aprendendo a usar a instrução FORMATCURRENCY, mas confesso que estou tendo problemas.

 

1) Tenho um banco de dados com a tabela VALORES;

2) Nesta tabela valores o campo é setado para MOEDA;

3) Tenho um formulario que recebe os dados vindos desta tabela para fazer o update;

4) Após atualizar no form, resgato estes dados do form para mandar para o banco, mas não sei como tratar este valor que resgato de FormatCurrency(RS("campovalor"));

 

Como posso tratar para que ele mande o valor exato para o banco de dados, pois tenho resgatado assim e dá DATATYPE MISMATCH...

 

 

Alguém me ajuda, como fazer o correto, para que independente do valor que for colocado, ele faça o update correto do valor.

 

 

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

para gravar no banco você não usa nenhuma formatação de funções. tem que fazer o replace dos pontos por nada e da virgula por ponto, nessa ordem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jonathan!

 

Tenho um form que pega do banco de dados com campo MOEDA e já trato eles com formatcurrency para mostrar na tela do form.

E no caso é para fazer o update dos dados, mas aqui em casa em windows XP BR assim como descrevo abaixo funciona, mas no TERRA não.

 

RESGATO ASSIM

campo6 = Replace(Request.Form("campo_valor"),"'","")

 

E tenho passar assim na instrução do update

ProdutosValorDe = '"&campo6&"'

 

No meu IIS vai, atualize perfeitamente,

Mas quando coloco no terra, dá este erro:

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

/editar_db.asp, line 52

 

E a linha 52 é na parte da instrução de update do banco.

Sabe porque isto acontece, e sabe como posso resolver?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que tem em campo6 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jonathan e Mário!

 

o campo6, tem este dado: R$ 1.261

 

E jonathan, eu fiz conforme você disse tirando as virgulas e etc...

Mas no meu micro funciona, mas no servidor terra dá aquele erro.

 

 

Meu código que estou usando para receber do form e enviar

<%
'VERIFICAMOS SE O USUARIO TEM NÍVEL DE ACESSO
 IF SESSION("COD") < 1 OR SESSION("COD") = "" THEN
 
	Response.Write "Ocorreu erro"
	
	Response.End
 END IF
%>
<%
'RECUPERAMOS AS VARIAVEIS DO FORMULARIO
   campo1  = Request.Form("campo_id")
   campo2  = Replace(Request.Form("campo_sigla"),"'","")
   campo3  = Replace(Request.Form("campo_nome"),"'","")
   campo4  = Replace(Request.Form("campo_fabricante"),"'","")
   campo5  = Replace(Request.Form("campo_categoria"),"'","")
   campo6  = Replace(Request.Form("campo_valor"),"'","")
   campo8  = Replace(Replace(Replace(Replace(Request.Form("campo_descricao"),"'",""),"<p>",""),"</p>",""),CHR(13),"<BR>")
   campo9  = Replace(Replace(Replace(Replace(Request.Form("campo_tecnicas"),"'",""),"<p>",""),"</p>",""),CHR(13),"<BR>")
   campo10 = Replace(Replace(Replace(Request.Form("ProdutosImagemNormal"),"'",""),"../",""),"/img_produtos/","")
   campo11 = Replace(Replace(Replace(Request.Form("ProdutosImagemAmpliada"),"'",""),"../",""),"/img_produtos/","")
   campo12 = CDbl(FormatNumber(campo6))
  'campo12 = Replace(FormatNumber(campo6,0),",",".")
   campo13 = Request.Form("campo_parcela")
   campo14 = Request.Form("campo_frete")
   campo15 = Request.Form("campo_faturado")
   campo16 = Request.Form("campo_promocao")
   

'INSERIMOS NO BANCO DE DADOS
 SQLUpdate = ObjCX.Execute("UPDATE Produtos SET ProdutosSigla = '"&campo2&"', ProdutosNome = '"&campo3&"', ProdutosFabricante = '"&campo4&"', ProdutosCategoria = '"&campo5&"', ProdutosValorDe = '"&campo12&"', ProdutosParcelas = '"&campo13&"', ProdutosFrete = '"&campo14&"', ProdutosFaturamento = '"&campo15&"', ProdutosDescricao = '"&campo8&"', ProdutosTabelaTecnica = '"&campo9&"', ProdutosImagemNormal = '"&campo10&"', ProdutosImagemAmpliada = '"&campo11&"' WHERE IDProduto = "&campo1&"")


'FECHAREMOS CONEXÕES
	 ObjCX.Close
 SET ObjCX = Nothing


'SE TUDO FOR OK, REDIRECIONAMOS
 Response.Redirect "produtos.asp?codproduto=" & Request("campo_id") &"&paginacao=" & Request("paginacao")
%>

Fiz agora deste outro jeito no meu micro e se atualizo em R$ 1.200,00 ele atualiza certo no meu micro, mas no terra ela aumenta o valor para R$ 12.000,00

Já não sei mais oque é, será que não é porque uso o LCID 1046???

 

 

Me ajudem amigos. to perdidão

Compartilhar este post


Link para o post
Compartilhar em outros sites

grava este valor

 

Passoa a passo os REPLACES

 

Valor = REPLACE(Valor,".","")
Valor = REPLACE(Valor,",",".")
Valor = REPLACE(Valor,"R$ ","")

Pode ser tudo junto tambem

 

Valor = REPLACE(REPLACE(REPLACE(Valor,".",""),",","."),"R$ ","")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito

 

abraços

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.