ERRO 6 - OVERFLOW

USUARIO.EXCLUIDOS 03/01/2005 20:31:01
#58377
Boa noite amigos,

Estou tendo um probleminha ao fazer uma determinada soma e jogá-la numa variável do tipo string. Cheguei numa determinada operação:

Dim X as integer
Dim Y as Integer

X := tabela.fields("Valor1")
Y := tabela.fields("Valor2")

LabelTotal.caption = cstr(x + y).

Estava funcionando normalmente até a soma dessas variáveis atingir 32.767, após esse valor começou a aparecer o erro.

Fiz um exemplo onde X=20.000 e Y = 20.000, e não estava conseguindo mostrar num campo string essa soma.
Pesquisei no forum e verifiquei que posso fazer da seguinte forma:

Dim Valor As Double
Dim x As Double
Dim y As Double
x = 200& * 100&
y = 200& * 100&
Valor = (x + y)
labelTotal.caption = Valor

Dessa forma deu tudo certinho. Minha dúvida é a seguinte:

Os valores de x e y não são fixos, ou seja, esses valores virão do banco de dados, como faço pra converter esses valores na medida que busco no BD.?

Desde já agradeço.
JCHARLES 03/01/2005 22:29:40
#58382
Caro DIVIED,

Você uso um Integer para declarar suas variável. Os limites do integer são -32.732 a +32.731 (não tenho certeza se são esses números exatos, mas devo ta errando por muito pouco). Se você usar o Long (para números inteiros) ou como fêz usando o Double (para números reais - com casas decimais) terás um limite bem maior de números.

Blz?
VB6MASTER 03/01/2005 22:39:31
#58385
Resposta escolhida
DIVIED
O colega JCHARLES tem razão. Faça assim:
Dim X as Long
Dim Y as Long

X := tabela.fields("Valor1")
Y := tabela.fields("Valor2")

LabelTotal.caption = cstr(x + y).
Tópico encerrado , respostas não são mais permitidas