VALOR NEGATIVO NO INSERT OU UPDATE
Preciso gravar um valor negativo no campo tipo double.
assim uso para positivo : Replace(CDbl(nomedocampo), [Ô],[Ô], [Ô].[Ô])
mas preciso como negativo
-25,00
banco mysql
assim uso para positivo : Replace(CDbl(nomedocampo), [Ô],[Ô], [Ô].[Ô])
mas preciso como negativo
-25,00
banco mysql
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:
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.
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.
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