PEGAR DESCRICAO NO MSFLEXGRID
Boa noite gente, bom, estou em andamento em um sistema de vendas, e cheguei a um certo ponto, estava indo tudo bem, até que agora estou montando a tela de alteração de vendas, quando digito o código da venda ele puxa todos os dados, itens e tudo, só que oque acontece..., no grid ele adiciona todos os itens também, só que tem um problema, no Banco eu só gravo o CÓDIGO da descrição do item, e sendo assim ele só adiciona o código, logicamente né, mas aà que tá, qual seria a melhor forma de eu ir até a tabela CADITENS e pegar a descrição? ou não precisa ir até a outra tabela de cadastros pra pegar a descrição? desde já agradeço a ajuda de todos, abraços...
Ta aà uma foto do grid...
Ta aà uma foto do grid...
A consulta que você está fazendo para alimentar a grade, precisa ser feita com uma JUNÇÃO (JOIN) da tabela que contém a descrição do item.
Exemplo:
Exemplo:
SELECT CategoryName, ProductName
FROM Categories
LEFT JOIN Products
ON Categories.CategoryID = Products.CategoryID;
Eu fiz assim eu deu certo, ex: antes de eu adicionar ao grid eu vejo qual [txt-color=#0000f0]CodItem[/txt-color] será adicionado, nesse caso como eu já sei qual código eu vou la na tabela de cadastros e pego a descricão, jogo numa variavel e adiciono no grid, funcionou certinho, mas não sei, acho que esse não é o meio de se fazer isso, agora não sei se devo usar o pensamento, deu certo deixa.. eu acho que não..., quero achar o metodo certo..
Colega entendi sua duvida, mas veja bem o que o colega TECLA propôs, que é o que resolve o problema, você não precisa ir buscar na tabela gravar em um varivel e exibir, basta criar uma query que busca os dados nas duas tabelas com o uso de join, exemplo postado acima por TECLA, esta é a maneira que a maioria utiliza entendeu
Bom, dei uma pesquisada e acho que consegui mais ou menos, só que quando eu mando ele adicionar até que seja EOF, ele já sai, porque EOF ou BOF são verdadeiros, tentei dar um MOVEFIRST mais não deu também, estou usando assim...
Oque pode estar errado?
sSQL = [Ô]SELECT * FROM (tabitens INNER JOIN tabprod ON tabitens.coddescricao=tabprod.nomeprod)[Ô]
[txt-color=#0000f0]Set[/txt-color] rsItens = Conexao.Execute(sSQL)
[txt-color=#0000f0]Do While Not[/txt-color] rsItens.EOF = [txt-color=#0000f0]True[/txt-color]
If rsItens!codcompra = txtcodcompra.Text [txt-color=#0000f0]Then[/txt-color]
gridcompras.AddItem [Ô][Ô] & vbTab & rsItens!coddescricao & vbTab & rsItens!nomeprod & vbTab & rsItens!qtde & vbTab & rsItens!unit & vbTab & rsItens!total
[txt-color=#0000f0]End If[/txt-color]
rsItens.MoveNext
[txt-color=#0000f0]Loop[/txt-color]
Oque pode estar errado?
veja bem tabitens coddescricao deveria ser igual a tabprod.codproduto, ou seja codigo deve ser igual codigo e nome ou descricao deve ser igual a nome ou descricao, codigo nao pode ser igual nome, tipo como 0001 vai ser igual a tapete
Ow Marcelo bom dia, estou no trabalho, não testei dessa maneira, mas então nesse caso, seria assim?
Será que é isso? Igual um relacionamento entre tabelas?
E aqui, eu vou setar uma tabela só?
Porque aqui na hora de eu adicionar na grade eu teria que pegar a descricão de uma e o código da outra certo? Mas como ja relacionei posso fazer assim? Certo?
Bom, foi isso que eu entendi até agora..
tabitens.coddescricao = tabprod.codprod
Será que é isso? Igual um relacionamento entre tabelas?
E aqui, eu vou setar uma tabela só?
Set rsItens = Conexao.Execute(sSQL)
Porque aqui na hora de eu adicionar na grade eu teria que pegar a descricão de uma e o código da outra certo? Mas como ja relacionei posso fazer assim? Certo?
gridcompras.AddItem rsItens!coddescricao & vbTab & rsItens!nomeprod
Bom, foi isso que eu entendi até agora..
sim poderá fazer desta maneira, desde que seja codigo com codigo.
consegui... só uma pergunta, é possivel com mais de 2 tabelas? valeu...
Muito obrigado, consegui.
Tópico encerrado , respostas não são mais permitidas