Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com Atualização


Gabriel Souza

Pergunta

Boa tarde Galera.

Estou montando um sistema para gerenciar o estoque da empresa via web, o estou com um problema pois quando chega um novo produto quer fazer o update e para isso tenho um form que ficou assim:

<br><body>
<p><form action="estoque.asp" method="POST" class="form">
  <p align="center"><br>
    <font color="#000000" size="4" face="Georgia, Times New Roman, Times, serif"><em><strong>C&oacute;d: </strong></em></font>
    <input name="codi" type="text" id="cod" size="8">
  <p align="center"><font color="#000000" size="4" face="Georgia, Times New Roman, Times, serif"><em><strong>Descri&ccedil;&atilde;o
      Produto:</strong></em></font>
    <input type="text" name="produto" size="75">
  <p align="center"><font color="#000000" size="4" face="Georgia, Times New Roman, Times, serif"><em><strong>Quantidade
          Cx. : 
          <input name="quantcx" type="text" id="quantcx" size="5">
  </strong></em></font>      
  <p align="center"><em><strong><font color="#000000" size="4" face="Georgia, Times New Roman, Times, serif">Quantidade
          Unid. : 
          <input name="quantun" type="text" id="quantun" size="8">
  </font></strong></em>  
  <p align="center">
    <input type="submit" name="Submit" value="Inserir">
    <br>

  </form>
Depois disto quero pegar o valor do item que já tenho em estoque e somar com o valor fornecido pelo form, para ter a quantidade real de produtos que terão no estoque abaixo segue o código asp:
'<%
' Vamos abrir a conexão:
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("estoque.mdb")&";"

' Recuperando variavel e fazendo a inserção:
cod = Request.Form("cod")
quantun = request.form("quantun")
quantcx = request.form("quantcx")
Set rst = Server.CreateObject("ADODB.Recordset")
set quantcx2 = Server.CreateObject("ADODB.Recordset")
set quantun2 = Server.CreateObject("ADODB.Recordset")
Set qt = Server.CreateObject("ADODB.Recordset")
Set unid = Server.CreateObject("ADODB.Recordset") 

SQL = "Select * from estoque where codproduto LIKE '%" & cod & "%'"
SQL2 = " Select cx from estoque where codproduto LIKE '%" & cod & "%'"
SQL3 = " Select cx from estoque where codproduto LIKE '%" & cod & "%'"

rst.open SQL, con
qt.open SQL2, con
unid.open SQL3, con

quantcx2 = quantcx + qt  '(Essa é a linha 60)
quantun2 = quantun + unid
If not rst.EOF Then
   do while not rst.EOF
    strSQL = "UPDATE estoque(cx, unid) set ('" & quantcx2 & "','" & quantun2 & "') where codproduto LIKE '%" & cod & "%'" 
        con.execute strSQL
    response.write "ITEM INCLUÍDO COM SUCESSO!"
    rst.movenext
    quant.movenext
    unid.movenext
loop
else
response.write "Houve um erro na inserção."
end if

%>'
´

Mas sempre apresente a seguinte mensagem de erro: Microsoft VBScript runtime error '800a000d'

Type mismatch

/estoque.asp, line 60

Já não sei mais o que fazer. Estou no aguardo.

E agradeço a atenção desde já

OBS: Meu banco de dados é access (infelizmente)

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Pricnipalmente em se tratando de estoque porque usar where com like ao invés de igual?

eu trocaria isso para evitar erros, veja se você tem um produto com codigo 353 e outro assim 3535 o seu update poderá mudar os dois produtos... sacou?

Esse campo código é do tipo texto ou número?

Se for numero faça assim:

... codproduto = " & cod & "
se for texto assim:
... codproduto = '" & cod & "'

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0
Pricnipalmente em se tratando de estoque porque usar where com like ao invés de igual?

eu trocaria isso para evitar erros, veja se você tem um produto com codigo 353 e outro assim 3535 o seu update poderá mudar os dois produtos... sacou?

Esse campo código é do tipo texto ou número?

Se for numero faça assim:

... codproduto = " & cod & "
se for texto assim:
... codproduto = '" & cod & "'

[]'s

Valeu Rafael, não tinha pensado nisso, mas o pior está no fato da linha 60 (onde supostamente está o erro) ser essa = quantcx2 = quantcx + qt '(Essa é a linha 60)

Parece que ele não está conseguindo trazer os valores e somar mas enfim, estou meio enferrujado com programação ASP por isso vim pedir o HELP Aqui.

Vlw pela ajuda até agora vou mudar a tratativa do where e like.

Editado por Gabriel Souza
Link para o comentário
Compartilhar em outros sites

  • 0

seguinte velhinho...

você ta tentando somar dois objetos que controlam o banco de dados...

como é um banco só... mude..

Set rst = Server.CreateObject("ADODB.Recordset")
set quantcx2 = Server.CreateObject("ADODB.Recordset")
set quantun2 = Server.CreateObject("ADODB.Recordset")
Set qt = Server.CreateObject("ADODB.Recordset")
Set unid = Server.CreateObject("ADODB.Recordset")
para
Set rs = Server.CreateObject("ADODB.Recordset")
não vejo porque 3 rs iguais abertos...
SQL = "Select * from estoque where codproduto LIKE '%" & cod & "%'"
SQL2 = " Select cx from estoque where codproduto LIKE '%" & cod & "%'"
SQL3 = " Select cx from estoque where codproduto LIKE '%" & cod & "%'"

rst.open SQL, con
qt.open SQL2, con
unid.open SQL3, con

quantcx2 = quantcx + qt  '(Essa é a linha 60)
quantun2 = quantun + unid
If not rst.EOF Then
   do while not rst.EOF
    strSQL = "UPDATE estoque(cx, unid) set ('" & quantcx2 & "','" & quantun2 & "') where codproduto LIKE '%" & cod & "%'" 
        con.execute strSQL
    response.write "ITEM INCLUÍDO COM SUCESSO!"
    rst.movenext
    quant.movenext
    unid.movenext
loop
else
response.write "Houve um erro na inserção."
end if

%>'
SQL = "Select * from estoque where codproduto=" & cod
rs.open SQL, con
If not rs.EOF Then

quantcx2 = rs("quantcx") + rs("qt")  '--> coloque o nome correto dos campos aqui
quantun2 = quantun + unid

   do while not rs.EOF

    strSQL = "UPDATE estoque(cx, unid) set ('" & quantcx2 & "','" & quantun2 & "') where codproduto LIKE '%" & cod & "%'" 

        con.execute strSQL
    response.write "ITEM INCLUÍDO COM SUCESSO!"
    rs.movenext

else
response.write "Houve um erro na inserção."
end if

%>'

mais ou menos isso

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...