Array
(
)

Campo Lookup

André Maretti
   - 27 ago 2004

Boa tarde,

Estou com um probleminha com um campo lookup.

Uso base de dados Access e conexão ADO.

Em um ADOQuery criei esse campo Lookup que me dá o nome do cliente que está em outra tabela.
O conteúdo da tabela está sendo exibida em um DBGrid.
A principio o campo está funcionando perfeitamente.

O problema é o seguinte:

O sistema faz uma consulta SQL (SELECT), até aí tá tudo funcionando direitinho. O problema é quando o usuário retira o filtro e o sistema faz outra conulta SQL (SELECT * FROM Tab_SaidaProduto), o conteúdo do campo LoockUp fica em branco.

Já tentei dar um refresh, e um open na tabela mas nao resolveu!

Alguém tem alguma idéia????

#Código


With DMDados Do Begin
TabClientes.SQL.Clear;
TabClientes.SQL.Add(´SELECT * FROM Tab_Clientes WHERE Nome LIKE ´ + QuotedStr(ComboClientes.Text));
TabClientes.Open;
If (TabClientes.RecordCount > 0) Then Begin
TabSaidaProdutos.SQL.Clear;
TabSaidaProdutos.SQL.Add(´SELECT * FROM Tab_Saida WHERE CodCliente = ´ + TabClientes.FieldByName(´Codigo´).AsString + ´ ORDER BY Data´);
TabSaidaProdutos.Open;

TabParcelas.SQL.Clear;
TabParcelas.SQL.Add(´SELECT * FROM Tab_Parcelas WHERE CodVenda = ´ + TabSaidaProdutos.FieldByName(´Codigo´).AsString + ´ AND Paga = False ORDER BY NumParc´);
TabParcelas.Open;

TabParcelasPagas.SQL.Clear;
TabParcelasPagas.SQL.Add(´SELECT * FROM Tab_Parcelas WHERE CodVenda = ´ + TabSaidaProdutos.FieldByName(´Codigo´).AsString + ´ AND Paga = True ORDER BY NumParc´);
TabParcelasPagas.Open;

//RECALCULA TOTAIS DE SAIDA
FormBaixaCliente.TabSaidaProdutos1.SQL.Clear;
FormBaixaCliente.TabSaidaProdutos1.SQL.Add(´SELECT SUM(ValorTotal) AS Total, SUM(VTotalComJuros) AS VTotalJuros FROM Tab_Saida WHERE CodCliente = ´ + TabClientes.FieldByName(´Codigo´).AsString);
FormBaixaCliente.TabSaidaProdutos1.Open;

PanelVTotalVendas.Caption := FormatFloat(´R$ #,0.00;(R$ ,0.00)´, FormBaixaCliente.TabSaidaProdutos1.FieldByName(´Total´).AsFloat);
PanelTotalJuros.Caption := FormatFloat(´R$ ,0.00;(R$ ,0.00)´, TabSaidaProdutos1.FieldByName(´VTotalJuros´).AsFloat - TabSaidaProdutos1.FieldByName(´Total´).AsFloat);
PanelTotalCJuros.Caption := FormatFloat(´R$ ,0.00;(R$ ,0.00)´, TabSaidaProdutos1.FieldByName(´VTotalJuros´).AsFloat);
End;
//---------------------------------------------------------------------------------
//AQUI O USUÁRIO TIRA O FILTRO
If (ComboClientes.Text = ´´) Then Begin
TabSaidaProdutos.SQL.Clear;
TabSaidaProdutos.SQL.Add(´SELECT * FROM Tab_Saida ORDER BY Data´);
TabSaidaProdutos.Open;

TabParcelas.SQL.Clear;
TabParcelas.SQL.Add(´SELECT * FROM Tab_Parcelas WHERE CodVenda = ´ + TabSaidaProdutos.FieldByName(´Codigo´).AsString + ´ AND Paga = False ORDER BY NumParc´);
TabParcelas.Open;

TabParcelasPagas.SQL.Clear;
TabParcelasPagas.SQL.Add(´SELECT * FROM Tab_Parcelas WHERE CodVenda = ´ + TabSaidaProdutos.FieldByName(´Codigo´).AsString + ´ AND Paga = True ORDER BY NumParc´);
TabParcelasPagas.Open;

AtualizaSoma(Sender);
End;
End;