Dicas do OsmarJr

Tratando Ponto Flutuante, Moeda e Decimal em comandos SQL


O Jet pode ser chato ao tratar ponto decimal. Isto pode causar problemas em países em que "," é o separador decimal.

Autor: Joe Foster

Como os caracteres de especificação de tipos de variáveis, como @, não funcionam no SQL do Access, o Jet converte tudo que contenha um ponto decimal em Double, provavelmente com perda de precisão ou mesmo falha de conversão de tipo.

Isto significa que precisamos usar CCur ou CDec dentro do SQL quando tratamos desses tipos, mas estas funções sempre obedecem as definições regionais e nem sempre funcionam com Str$.

Para contornar isso, use a função Format:

"where salario = cCur(""" & Format$(MeuValorMoeda) & """)"

ou

"where xValor = cDec(""" & Format$(MeuValorDecimal) & """)"

Home

Contato | Copyright©Osmar José Correia Júnior | 24-Nov-2005 18:23