RELACIONANDO ITENS DE VARIAS TABELAS
Citação::
Pensa bem. O Ãtemkit, nada mais é que um conjunto de produtos. Quando vc [Ô]tira da tabela de estoque[Ô] vc normalmente faz isso para um produto apenas. Quando for um kit, vc vai fazer o mesmo procedimento várias vezes, uma vez para cada Ãtem do kit, é o mesmo que vc [Ô]tirar do estoque[Ô] várias vezes...
sim, mas nao estou intendendo como isso vai ficar!!! onde dou o comando update??
como faço, digo pra diminuir na tabela kit ou na item kit? e como eu vou fazer diminuir de uma e automaticamente ira diminuir da estoque??
desculpa minha ignorancia, mas ta dificil aqui!!
Esse é o processo normal quando se está dando baixa Ãtem a Ãtem.
Quando vai dar baixa no kit(no caso o frango) ao invés de selecionar produtos, vc vai selecionar o kit que já tem toda a composição. Ao clicar no botão [Ô]dar baixa[Ô](ou seja o que for no seu sistema), ao invés de baixar o kit como se fosse um produto, vc vai fazer um select de todos os produtos do kit:
rs.open [Ô]Select CodigoProduto, Quantidade from KitItens where CodigoKit = [Ô] & txtCodigoProduto, SUA_CONEXAO
Com isso, vai ter todos os produtos que fazem parte do kit dentro do recordset, então faz um loop:
do while not rs.eof
SUA_CONEXAO.Execute [Ô]update Estoque set saldo = saldo - [Ô] & CDbl(txtQuantidade.Text) * rs!Quantidade & [Ô] Where CodigoProduto = [Ô] & rs!CodigoProduto
rs.movenext
loop
vou tentar aqui, orbrigado
Citação::
Lembra do exemplo do frango? Sem ter um kit, para dar baixa em um frango inteiro, vc teria que fazer os Ãtens dele um a um, certo? Um frango = 2 asas, 2 coxas, 1 peito e 1 pescoço. Então vc teria que entrar na tela de [Ô]baixa[Ô] do estoque e colocar [Ô]2 asas[Ô] e dar baixa, depois [Ô]2 coxas[Ô] e dar baixa...
Esse é o processo normal quando se está dando baixa Ãtem a Ãtem.
Quando vai dar baixa no kit(no caso o frango) ao invés de selecionar produtos, vc vai selecionar o kit que já tem toda a composição. Ao clicar no botão [Ô]dar baixa[Ô](ou seja o que for no seu sistema), ao invés de baixar o kit como se fosse um produto, vc vai fazer um select de todos os produtos do kit:
rs.open [Ô]Select CodigoProduto, Quantidade from KitItens where CodigoKit = [Ô] & txtCodigoProduto, SUA_CONEXAO
Com isso, vai ter todos os produtos que fazem parte do kit dentro do recordset, então faz um loop:
do while not rs.eof
SUA_CONEXAO.Execute [Ô]update Estoque set saldo = saldo - [Ô] & CDbl(txtQuantidade.Text) * rs!Quantidade & [Ô] Where CodigoProduto = [Ô] & rs!CodigoProduto
rs.movenext
loop
este rs.open é uma variavel de que tipo?? oledb conection ou reader? eu tentei aqui e nao deu, nao sei como declaro o rs
Citação::
rs.open, é do ADODB. No seu caso, seria um OleDbDataReader. A propósito, que banco de dados está usando para ter que usar um client OleDb?
Citação::
rs.open, é do ADODB. No seu caso, seria um OleDbDataReader. A propósito, que banco de dados está usando para ter que usar um client OleDb?
Estou usando o Acces 2003
mas como assim como faço então pra oledb pq eu declarei assim
Dim rs as oledbdatareader e nao rolou fiz tbm
dim rs as new oledbdatareader e tbm nao rolou
cn.open
dim cmd as new oledbcommand([Ô]select xx from tabela[Ô], cn)
dim dr as cmd.executereader()
Citação::
dim cn as new oledbconnection([Ô]sua connectionstring[Ô])
cn.open
dim cmd as new oledbcommand([Ô]select xx from tabela[Ô], cn)
dim dr as cmd.executereader()
esta ocorrendo um erro ao reconhecer o executereader, nao esta reconhecendo o comando
Dim cs As String = My.Settings.EstoqueConnectionString1
Dim conect As New OleDb.OleDbConnection(cs)
conect.Open()
Dim cmd As New OleDb.OleDbCommand([Ô]Select CodigoProduto, saldo from tb_itemkit where CodigoKit = [Ô] & txtcod.Text, conect)
conect.ConnectionString = cs
Dim dr As cmd.executereader()
Mas na boa amigo, se vc ainda não manja esses conceitos mais básicos, sugiro antes dar uma estudada pra entender melhor. Essas coisas de abrir banco, consultar dados e tal, são básicas. Para começar a desenvolver vc precisa dominar isso...