A ver que os parece esta función:
Código Delphi
[-]
function DoLookup(qry:TDataset;const NombreCampo:string;
const ValorNombreCampo:Variant; const DevolverCampo:string): Variant;
begin
Result := Unassigned;
if qry.Active then
begin
if (qry.FindField(NombreCampo) = nil) then
Exception.Create('Parámetro NombreCampo : '+ NombreCampo+
' no encontrado en Dataset: ' + qry.Name);
if qry.FindField(DevolverCampo) = nil then
Exception.Create('Parámetro DevolverCampo : '+ DevolverCampo +
' no encontrado en Dataset: ' + qry.Name);
if (qry.RecordCount >0) then
begin
Result := qry.Lookup(NombreCampo ,ValorNombreCampo,DevolverCampo);
if (VarType(Result) in [varnull]) then begin
Result := Unassigned;
end;
end;
end
end;
Saludos