INSERIR MAIS UNIDADES DO PRODUTO NO BD
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
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
Porque nao faz o select soma com o novo valor e da um UPDATE ?
Leandro
vc poderia dar um exemplo, por favor
vc poderia dar um exemplo, por favor
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
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)
cnn.Execute([Ô]update Produtos set quantidade = quantidade + [Ô] & cdbl(txtquantidade.text) & [Ô] WHERE Código = [Ô] & txtCódigo)
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