Bom dia amigos!
 
	O erro ocorre porque o campo não existe no SELECT, isso já sabemos.
 
	Resolvi esse problema fazendo o campo "existir", porém utilizando um JOIN para trazer os dados alguns componentes não respeitam a configuração do campo e tentar gravar na tabela auxiliar, causando um outro erro que claro não queremos.
 
	Então o que fiz foi trazer os dados usando um sub SELECT, exemplo:
 
	SELECT 
	 FE.FornEmpresa_fornecedor, 
	 FE.FornEmpresa_empresa, 
	 (SELECT Emp_ds from Empresa  EM WHERE EM.Emp_cd = FE.FornEmpresa_empresa) as [Emp_ds] 
	FROM Forn_Empresa FE
 
	Dessa forma o componente ADOQUERY não tentar gravar dados em "Emp_ds", traz os dados e é possível ordenação porque agora ele existe no SELECT.
 
	No FIELD, ele continua sendo do tipo LOOKUP e todo configurado para trazer os dados da outra tabela, normalmente, senão ao inserir registro ele não preenche a descrição sem reabrir o ADOQUERY.
 
	Importante: No FIELD, na propriedade "ProviderFlags", marque apenas a opção "pfHidden", o deixei como ReadOnly para que não seja possível altera-lo e assim evitar que tente ser gravado.
 
	Testem aí e me dêem feedback por favor.
 
	Abraços!!