Hola.
Tál como te comenta
olbeup, no encontrará el código de esa manera. Para lograr lo que buscas tendrías que crearte una variable de tipo
TStrings que almacene paralelamente los códigos propiamente dichos y realizar las búsquedas sobre ella. Es decir que cuando realizas la carga del ComboBox tendrías que hacer:
Código Delphi
[-]
tsCódigo:= TStringList.Create;
while not DataSet.Eof do
begin
tsCódigo.Add(DataSet.FieldByName('CODIGO').AsString);
ComboBox1.Items.Add(DataSet.FieldByName('CODIGO').AsString + DataSet.FieldByName('DETALLE').AsString);
DataSet.Next;
end;
Luego, para buscar el código, algo como:
Código Delphi
[-]
...
ix := tsCódigo.IndexOf(Edit1.Text); if ix <> -1 then
begin
ComboBox1.ItemIndex:= ix; Edit2.SetFocus; end
...
En algún punto deberás hacer tsCodigo.Free para liberar memoria. (Estoy escribiendo el código en el aire, así que seguramente obtengas algún error si lo probas)
Pero es muchísimo más sencillo y eficiente comprobar la existencia del código ejecutando una consulta sobre el DataSet.
Un saludo.