RELACIONANDO ITENS DE VARIAS TABELAS

KERPLUNK 10/01/2012 11:43:03
#392806
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...
TIDY 10/01/2012 11:58:29
#392812
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!!
KERPLUNK 10/01/2012 12:07:23
#392813
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

TIDY 10/01/2012 13:07:37
#392817
hummm, estou intendendo!!!
vou tentar aqui, orbrigado
TIDY 10/01/2012 13:19:58
#392818
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
KERPLUNK 10/01/2012 13:57:06
#392823
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?
TIDY 10/01/2012 13:58:56
#392824
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
KERPLUNK 10/01/2012 14:03:48
#392825
dim cn as new oledbconnection([Ô]sua connectionstring[Ô])
cn.open
dim cmd as new oledbcommand([Ô]select xx from tabela[Ô], cn)

dim dr as cmd.executereader()
TIDY 10/01/2012 14:11:42
#392827
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()

KERPLUNK 10/01/2012 14:12:30
#392828
Dim dr As OleDbDatareader = 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...
Página 5 de 9 [89 registro(s)]
Tópico encerrado , respostas não são mais permitidas