Hola.
Tu observación es correcta
oscarac , la línea es redundante ya que de encontrarlo vuelve a buscarlo.
Pero esa no es la raíz del problema, ya que si se hace:
Código Delphi
[-]
if ADOTable1.Locate('Campo', Edit2.Text,[]) then
begin
ADOTable1.Locate('Campo', Edit2.Text,[]);
ShowMessage('Encontrado')
end
else
ShowMessage('No encontrado');
O se hace:
Código Delphi
[-]
if ADOTable1.Locate('Campo', Edit2.Text,[]) then
ShowMessage('Encontrado')
else
ShowMessage('No encontrado');
Y el dato a buscar existe en la tabla pero está excluido del conjunto de datos filtrados, en ambos casos mostrará el mensaje 'Encontrado', siendo que no debería hacerlo. Es decir que ignora el filtro en la busqueda.
Un saludo.