INSERIR MAIS UNIDADES DO PRODUTO NO BD

ADHEL 22/10/2009 13:38:15
#326063
Pessoal , gostaria de inserir mais unidades de um produto no banco de dados, sendo que esse produto já está cadastrado


Aqui é qdo cadastro pela primeira vez
Novo produto

rs.AddNew
rs([Ô]Código[Ô]) = txtCódigo
rs([Ô]Nome[Ô]) = txtNome
rs([Ô]Fabricante[Ô]) = txtFabricante
rs([Ô]Quantidade[Ô]) = txtQuantidade
rs([Ô]PreçoCompra[Ô]) = txtPreçoCompra
rs([Ô]Porcentagem[Ô]) = txtPorcentagem
rs([Ô]PreçoVenda[Ô]) = txtPreçoVenda
rs([Ô]Observação[Ô]) = txtObservação
rs.Update


Quando o Produto já está cadastrado.
Nesse modo gostaria de inserir mais produtos.
Ou seja, na hora que eu fiz o cadastro pela primeira vez comprei 20 unidades,
Só que agora fiz compra do mesmo produto.Comprei mais 15

O certo seria ter no estoque 35 unidades

Eu clico no botão alterar que está assim

Private Sub txtCódigo_LostFocus()
Dim rsprodutos As ADODB.Recordset
Set rsprodutos = cnn.Execute([Ô]SELECT * FROM Produtos WHERE Código = [Ô] & txtCódigo)



If Not rsprodutos.EOF Then
txtPreçoVenda = rsprodutos!Preçovenda
txtPreçoVenda = Format(rsprodutos!Preçovenda, [Ô] #,##0.00[Ô])
txtPreçoCompra = rsprodutos!preçocompra
txtPorcentagem = rsprodutos!porcentagem
txtNome = rsprodutos!Nome

txtFabricante = rsprodutos!fabricante
txtQuantidade = rsprodutos!Quantidade


End If

neste caso só altero a quantidade do produto

e mando gravar novamente

rs.AddNew
rs([Ô]Código[Ô]) = txtCódigo
rs([Ô]Nome[Ô]) = txtNome
rs([Ô]Fabricante[Ô]) = txtFabricante
rs([Ô]Quantidade[Ô]) = txtQuantidade
rs([Ô]PreçoCompra[Ô]) = txtPreçoCompra
rs([Ô]Porcentagem[Ô]) = txtPorcentagem
rs([Ô]PreçoVenda[Ô]) = txtPreçoVenda
rs([Ô]Observação[Ô]) = txtObservação
rs.Update

aparece essa msg

run-time error -2147217887

As alterações solicitadas para a tabela não foram satisfatórias já que criaram valores duplicados no indice....
Se eu tiro a chave primária ele grava ,só que cria outro código com o mesmo produto.

Resumindo eu gostaria de somar a quantidade que está no estoque mais a quantidade da nova compra

Obrigado a todos e desculpe o tópico extenso
LEANDRO 22/10/2009 14:08:16
#326068
Porque nao faz o select soma com o novo valor e da um UPDATE ?
ADHEL 22/10/2009 14:11:26
#326070
Leandro
vc poderia dar um exemplo, por favor
LEANDRO 22/10/2009 14:21:23
#326072
Dim Quantidade as Double
Set rsprodutos = cnn.Execute([Ô]SELECT * FROM Produtos WHERE Código = [Ô] & txtCódigo)

Quantidade = rsprodutos!qtde
Quantidade = Quantidade + txtQTDE.text


sendo assim é só da um UPDATE na tabela de Produtos referente ao txtCodigo com o valor Quantidade
ACG1574 22/10/2009 14:52:40
#326074
Resposta escolhida
adhel, na verdade isso nao funciona dessa maneira, eu tenho uma tabela de movimentacao de produto, pra mim saber tudo que entrou e saiu desse produto, mas se vc quiser fazer dessa maneira ai, é só vc fazer um update em vés de um select. asimm

cnn.Execute([Ô]update Produtos set quantidade = quantidade + [Ô] & cdbl(txtquantidade.text) & [Ô] WHERE Código = [Ô] & txtCódigo)
RCMRO 22/10/2009 16:18:51
#326087
Cria um botão [Ô]SALVAR[Ô] da seguinte forma
Private Sub Salvar_Click()
Dim rsprodutos As ADODB.Recordset
Set rs = cnn.Execute([Ô]SELECT * FROM Produtos WHERE Código = [Ô] & txtCódigo)

If Not rs.EOF Then
rs.Edit
rs([Ô]Nome[Ô]) = txtNome
rs([Ô]Fabricante[Ô]) = txtFabricante
rs([Ô]Quantidade[Ô]) = txtQuantidade
rs([Ô]PreçoCompra[Ô]) = txtPreçoCompra
rs([Ô]Porcentagem[Ô]) = txtPorcentagem
rs([Ô]PreçoVenda[Ô]) = txtPreçoVenda
rs([Ô]Observação[Ô]) = txtObservação
rs.Update
else
rs.AddNew
rs([Ô]Código[Ô]) = txtCódigo
rs([Ô]Nome[Ô]) = txtNome
rs([Ô]Fabricante[Ô]) = txtFabricante
rs([Ô]Quantidade[Ô]) = txtQuantidade
rs([Ô]PreçoCompra[Ô]) = txtPreçoCompra
rs([Ô]Porcentagem[Ô]) = txtPorcentagem
rs([Ô]PreçoVenda[Ô]) = txtPreçoVenda
rs([Ô]Observação[Ô]) = txtObservação
rs.Update
end if
rs.Close
End Sub
Tópico encerrado , respostas não são mais permitidas