ну брось еще один ADOQuery, подключи его (пусть это будет ADOQueryFind).
При клике на кнопку "Найти" напиши примерно такой код (имен полей не знаю, соотв, поставил по русски):
Код:
procedure Form1.btFindClick(Sender : TObject);
const
cQuery = 'SELECT * FROM Таблица WHERE %s = ''%s''';
var
sQuery : String;
sField : String;
begin
If rbLastName.Checked
Then sField := 'Фамилия'
Else sField := 'Страна';
sQuery := Format(cQuery,[sField,edFind.Text]);
ADOQueryFind.SQL.Clear;
ADOQueryFind.SQL.Add(sQuery);
ADOQueryFind.Open;
end;
Это для точного сравнения.
Для точного сравнения без учета регистра, константу надо описать так:
Код:
const
cQuery = 'SELECT * FROM Таблица WHERE UPPER(%s) = UPPER(''%s'')';
Для неточного сравнения (по началу строки), но с учетом регистра, надо сделать такую константу:
Код:
const
cQuery = 'SELECT * FROM Таблица WHERE %s LIKE ''%s%''';
Ну, как убрать зависимости от регистра в последнем случае, сам сообразишь.
Но я бы все-равно лучше бы "сел" на OnFilterRecord. Так красивее получается

И не нужен дополнительный грид.
ЗЫ. Все, дальше или в "Код на шару", или в "Работу".