Команда "while" здесь ни к чему абсолютно. Она Вам и делает чудеса. Метод Locate возвращает true, если запись найдена. На это и нужно опираться:
Код:
if AdoTable1.Locate... then ...
Далее. Вы делаете два поиска, это не нужно и забирает дополнительное время. Правильнее искать сразу по двум полям (пример кода я приводил выше).