VALOR NEGATIVO NO INSERT OU UPDATE

MOREIRA 16/03/2015 04:45:45
#445255
Preciso gravar um valor negativo no campo tipo double.

assim uso para positivo : Replace(CDbl(nomedocampo), [Ô],[Ô], [Ô].[Ô])

mas preciso como negativo

-25,00

banco mysql

SINCLAIR 16/03/2015 15:30:40
#445272
Colega,

Você fez certo em trocar a vírgula por ponto, para que o separador de campos (vírgula) não seja confundido com a vírgula da parte fracionária de um valor qualquer (como 25,00 que daria a entender dois conteúdos, sendo o 25 e 00).

Também verifique se seu valor não está indo com vários pontos (exemplo: 1.250,32 -> trocando a vírgula por ponto ficaria 1.250.32, o que faria gravar no banco 1,25). Creio que isto não esteja ocorrendo, fica apenas com um lembrete porque eu mesmo já tive este tipo de problema.

No caso concreto, para gravar valores negativos, basta apenas gravar com o sinal de menos na frente, não tem diferença, seria -25.00 (com ponto e não vírgula). Apenas certifique-se de tirar os espaços antes, sendo que o replace troca conteúdo em strings.

Tenta assim:

Replace(Rtrim(Ltrim(Str(CDbl(nomedocampo)))), [Ô],[Ô], [Ô].[Ô])


Lembrando que ao gravar, como você informou que o que deseja é gravar, dentro do Cdbl não deverá usar nome do campo, mas sim nome de uma text ou variável que será gravada no campo.

Tudo de bom.

FOXMAN 16/03/2015 20:23:59
#445279
Resposta escolhida
Citação:

:
Preciso gravar um valor negativo no campo tipo double.

assim uso para positivo : Replace(CDbl(nomedocampo), [Ô],[Ô], [Ô].[Ô])

mas preciso como negativo

-25,00

banco mysql




Se vc multiplicar por * -1 já obterá o valor negativo,

Replace(CDbl(nomedocampo), [Ô],[Ô], [Ô].[Ô]) * -1


Isso é válido para SQL também, como por exemplo
SELECT (1+3)*-1
Resultado será = -4


Tópico encerrado , respostas não são mais permitidas