Inquiridor
Ajuda em BD em Access- como criar query para atualizar e dar baixa em estoque

Pergunta
-
Estou desenvolvendo um sistema de estoque de informática, já criei os formularios tabelas, etc.
Estou tendo problemas quanto a criação de uma query que consiga dar baixa/atualizando, vou exemplificar:
Tenho uma tabela Peças com as seguintes colunas idPeça,Nome. Marca,Descrição,Quantidade; e uma outra Saída de Peças com as seguintes colunas IdSaída,IdFuncionário,Setor,Maquina,Datasaida,Peça,IdPeça,Quantidade;
Quero fazer que quando uma peça sair, atravez da tabela Saída de Peças, dê baixa automaticamente na tabela Peças, só que não consegui criar este processo, alguém pode me ajudar?
Obs: o meu Bd foi criado Pelo Access
Estou criando o sistema pelo Visual Studio 2010
Agradeço desde já!
Todas as Respostas
-
Quando voce fazer a saida, usa o codigo da idPeca e cria um novo select que vai apagar na tabela Pecas baseado no codigo da peca na tabela saida.
Na tabela Saida tens um codigo assim:
Select From tabelaSaida Where idPeca = @idPeca,
comando.parametro.addvaluewith("@idPeca", Textbox1.text)
ele vai mostar a peca comprada ou saida.
bala bala bala
Delete from tabela Pecas where idPecas=@idpecas;---aqui ele vai receber o codigo que vem da tabela Saida
comando.parametro.addvaluewith("@idPeca", Textbox1.text)
One word frees us of all the weight and pain of life: that word is love. -
Amigo obrigado pela ajuda,
Estou tentando por este caminho, até que consegui, só que pela query e parametros que usei( e foi o que funcionou) só está retirando uma unidade de cada vez mesmo que eu coloque mais na hora que salvo e vou olha a outra tabela deu baixa em somente uma.
A query que usei foi:
Nome TiraPeças
UPDATE Peça
SET Quantidade = Quantidade - 1
WHERE (idPeça = vidPeça)Os parametros usados foram:
Member 1
DbType=Int32
ParameterName=vIdPeça
Member1
DbType=Int32
ParameterName=vQuantidade
e no meu Form ficou assim:
this.Validate();
this.saída_de_PeçasBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bDsystemInfoDataSet);
int nidPeça = Convert.ToInt32(this.idPeçaTextBox.Text);
int nQuantidade = Convert.ToInt32(this.quantidadeTextBox.Text);
this.peçaTableAdapter.TiraPeça(nidPeça, nQuantidade);
MessageBox.Show("Saída de Peça Registrada com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.saída_de_PeçasBindingSource.MoveLast();Tentei criar um outro parametro, pois no UPDATE que criei coloquei o parametro (Quantidade - 1), porem quano altero este valor não funciona.
Onde estou errando?
Alguém pode ajudar
-
-
Estevam, bom dia. usei este parametro, e retorna uma mensgem de erro já na hora de executar a query
error source:Microsoft Jet database engine
error message:nenhum valor foi fornecido para um ou mais parametros necessarios
- Sugerido como Resposta Luiz Estevam quinta-feira, 9 de junho de 2011 17:27
- Não Sugerido como Resposta Luiz Estevam quinta-feira, 9 de junho de 2011 17:27
-
-
O Form que criei para tentar resolver está questão está assim:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TesteBd
{
public partial class frmCadSaída : Form
{
public frmCadSaída()
{
InitializeComponent();
}
private void saída_de_PeçasBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.saída_de_PeçasBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bDsystemInfoDataSet);
int nidPeça = Convert.ToInt32(this.idPeçaTextBox.Text);
this.peçaTableAdapter.TiraPeça(nidPeça);
MessageBox.Show("Saída de Peça Registrada com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.saída_de_PeçasBindingSource.MoveLast();
}
private void frmCadSaída_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'bDsystemInfoDataSet.Peça' table. You can move, or remove it, as needed.
this.peçaTableAdapter.Fill(this.bDsystemInfoDataSet.Peça);
// TODO: This line of code loads data into the 'bDsystemInfoDataSet.Saída_de_Peças' table. You can move, or remove it, as needed.
this.saída_de_PeçasTableAdapter.Fill(this.bDsystemInfoDataSet.Saída_de_Peças);
}
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Deseja excluir o registro?", "Questionamento", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
this.Validate();
//this.peçaBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bDsystemInfoDataSet);
MessageBox.Show("Registro Excluido Com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Operação Cancelada", "Cancelada", MessageBoxButtons.OK, MessageBoxIcon.Information);
//this.peçaTableAdapter.Fill(this.bDsystemInfoDataSet.Peça);
}
}
private void button1_Click(object sender, EventArgs e)
{
this.Dispose();
}
}
}E a configuração que está funcionando na query
UPDATE Peça
SET Quantidade = Quantidade - 1
WHERE (idPeça = vidPeça)Só que está exclui uma unidade só( por causa do parametro -1)
porem qndo tento colocar uma váriavel
UPDATE Peça
SET Quantidade = Quantidade - vQuantidade
WHERE (idPeça = vidPeça)não funciona....
só não sei onde estou errando..
caso queira eu passo por e-mail a pasta do sistema, este está pequeno, pois como não estavaq resolvendo criei só para descobrir o erro ao invés de ficar fuçando no sistema que estou desenvolvendo.
Abrigado por tentar me ajudar..
abraço
-
Franklin, no seu código não veio esta parte com o SQL e adição de parametros, porém pelo erro, se você adicionou o parametro na query você deve adicionar o parametro no command, envia a parte do código que tem o select mais a adição de parametros.
Abraço
Estevam
**** Se a reposta foi útil, então não esqueça de marca-lá. *** -
http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/8f0a9717-8e5d-420c-a0aa-ade1078d758e
One word frees us of all the weight and pain of life: that word is love. -
O código é o que está acima, os parametros que estou adicionando na query que criei na tabela peça são dois um para, eu só adicionei o parametro na tabela Peças, e não adicionei nehum na tabela Saída de Peças
o primeiro está assim tipo de dados: DbType int32
ParameterName:vIdPeça
o outro está assim: DbType int32
ParameterName:vQuantidade
E o nome da query está: TiraPeça
E no command do form está assim:
this.Validate();
this.saída_de_PeçasBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bDsystemInfoDataSet);
int nidPeça = Convert.ToInt32(this.idPeçaTextBox.Text);
int nQuantidade = Convert.ToInt32(this.quantidadeTextBox.Text);
this.peçaTableAdapter.TiraPeça(nidPeça,nQuantidade);
MessageBox.Show("Saída de Peça Registrada com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.saída_de_PeçasBindingSource.MoveLast();