Array
(
)

Valor de campo Lookup em DBGrid

Adalberto
   - 20 mar 2006

Boa noite... Pesquisei no Fórum e não conseguí achar algo que me ajudasse. :(

Tenho uma DBGrid onde são mostrados os campos Data, Hora, Módulo e Tipo através de uma consulta ADOQuery em uma tabela Access. Com exceção do campo Data, todos os outros são chaves estrangeiras de outras tabelas (campos numéricos), e na DBGrid são mostrados as Strings através de novos campos Lookup criados (os campos numéricos estão com a propriedade Visible = False no Fields Editor da Query).

Meu problema é o seguinte: estou querendo alterar o valor de um dos campos quando der um duplo-clique em uma das linhas da DBGrid. Para isso, precisaria saber o valor das chaves-primárias da linha clicada, e atualizaria o campo através de uma instrução SQL ou mesmo através de um componente ADOTable.

Já tentei através da ADOQuery, colocando a propriedade Visible = True nos campos do Fields Editor, e tentei pegar os valor da seguinte forma:

var CodAluno, CodModulo: integer;

CodAluno := dm.qryRep.FieldValues[´Cod_Aluno´];
CodModulo := dm.qryRep.FieldValues[´Cod_Modulo´];

Não retorna valor algum. Quando coloco um ponto de interrupção no código e o cursor do mouse sobre a propriedade FieldValues, dá a seguinte mensagem para cada uma das linhas acima:

dm.qryRep.FieldValues = ´[´ expected but end of file found

Resumindo: como pegar novamente as chaves primárias dos campos clicando-se na DBGrid ?

Obrigado pela ajuda... :lol: