Ir para conteúdo

POWERED BY:

Arquivado

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

Vinicius Ianni

[Resolvido] Somar variaveis

Recommended Posts

Estou aqui fritando a cabeça com algo muito simples mas sem solucionar a contento.

Tenho o codigo:

Session("qtad"&rs2("id")) = request.form("qtd"&rs2("id"))
qtdv=rs2("quantidade")
qtdnv=Session("qtad"&rs2("id"))
qtdnov=qtdv+qtdnv

A session é usada para criar dinamicamente a variavel que recebe do formulario

Ao executar isso, dá este erro:

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: '[string: ""]'

a linha do erro:

qtdnov=qtdv+qtdnv

 

 

Tentei de várias formas, provavelmente erradas, pois até agora não consegui resolver isso.

BD mysql, campo quantidade sendo int

 

Alguma ideia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque qtdnov=qtdv+qtdnv por qtdnov=Cint(qtdv)+Cint(qtdnv) e tente novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os campos estão con valores corretos?

 

Dê um response.write neles e verfique.

 

E esta linha:

qtdnv=Session("qtad"&rs2("id"))

Não seria?

qtdnv=Session("qtad") & rs2("id")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jota, essa linha que voce comentou seria para ter uma saida assim:

Session("qtad00121"))=100

 

e da forma que você sugere, apesar de ser a correta e eu preferir, não sei por qual motivo não funciona como desejo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei algumas coisas:

qtdnov = (qtad)+(FormatNumber(qtdv),0)

Só assim não dá erro, se usar Cstr também não dá erro:

qtdnov = (Cstr(qtad))+(Cstr(qtdv))

Usando Cdbl (que não é o caso) ou Cint, dá erro.

Mas o resultado tem sido:

 

120100

 

Ele não soma as variaveis.

Alguem sabe como solucionar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, mudei algumas coisas (tirei tudo que era session e virou variavel normal) e dei um vartype nas variaveis que quero somar.

O script enxerga como sendo string, por isso nao soma.

Coloquei Cint e a variavel que é alimentada pelo banco de dados, passa a ser inteiro.

O problema é com a variavel que recupero do formulário.

Tentei com Cint, CDbl e acusa erro de typemismath.

Estranho....

Se passar para session será que consigo converter?

Alguem sabe como resolver isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para quem está acompanhando a saga, ainda não consegui resolver isso.

O que sei:

 

DO WHILE NOT rs2.EOF

qtad = request.form ("qtd"&rs2("id"))
chek = request.form("check"&rs2("id"))
qtdv = rs2("quantidade")
'qtdnv=qtad+qtdv
response.write qtdv &"<p>"
response.write vartype(qtad) &"  "
response.write vartype(qtdv) &"<p>"

Esse trecho está funcionando como esperado exceto a soma que está comentada.

O vartype do qtad retorna 8 (8 = vbString - Indicates a string) e o do qtdv retorna 3 ou 2 se colocar um Cint (2 = vbInteger - Indicates an integer 3 = vbLong - Indicates a long integer)

 

O que eu quero é somar o valor que vem do formulario com o valor que existe no banco de dados e realizar o update (já que é para atualizar o estoque).

O problema é que ou dá erro, ou ele não soma, trata como se fosse string tudo e ai fica o valor do formulario e o valor do banco de dados juntos como se fosse para montar uma frase.

 

Se tento converter o qtad para cint ou qualquer formato, ele acusa erro de type mismatch.

Sei que deve existir alguma solução para isso, mas não a tenho encontrado.

Alguem já passou por isso ou fez uma rotina de atualização de estoque com dados vindo de formulário e deu certo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido !

 

O trecho ficou assim:

 

DO WHILE NOT rs2.EOF

Session("qtad"&rs2("id")) = request.form ("qtd"&rs2("id"))
chek = request.form("check"&rs2("id"))
qtdv = rs2("quantidade")

if chek = "on" then
qdta=Session("qtad"&rs2("id"))
qtdnv=qdta+qtdv

 

Criei a session para os dados que recebo do formulário criei uma variavel que pega o valor dessa session e mudei a soma para depois do check que verifica se o produto está setado para ter seu estoque alterado.

 

Grato.

Vinicius Ianni

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.