![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
Код:
procedure TForma1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text)>0 then
DataModule1.ADOTable1.Filtered:=true
else
DataModule1.ADOTable1.Filtered:=false;
DataModule1.ADOTable1.Filter:='f1>'''+Edit1.Text+'''';
end;Хотелось бы, чтобы при изменении значения Edit1.Text, включался фильтр для ADOTable1 для поля f1. Т.е. чтобы в DBGrid попадали записи, в которых поле f1 начинается с текста в Edit1. При этом по мере набора текста в Edit1 отфильтровывалось ненужное. Указанная процедура компилится, но результата нет - ненужное не отбрасывается. Помогите пожалуйста! Последний раз редактировалось Admin, 07.09.2011 в 15:14. |
|
#2
|
||||
|
||||
|
Так попробуйте:
Код:
DataModule1.ADOTable1.Filter:='f1 like ''%'+Edit1.Text+'%'''; |
|
#3
|
|||
|
|||
|
Попробовал и в ответ вижу сообщение:
"Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом". |
|
#4
|
||||
|
||||
|
f1 у вас строковое?
|
|
#5
|
||||
|
||||
|
Ну а так?
Код:
procedure TForma1.Edit1Change(Sender: TObject);
begin
if Edit1.Text = '' then Exit;
DataModule1.AdoTable1.Filter := Format('[f1] like ''%%%s%%''',[Edit1.Text]);
DataModule1.AdoTable1.Filtered := True;
end; |
|
#6
|
|||
|
|||
|
спасибо, так работает, но выводит все строки с включением подстроки, а мне нужно только те, которые сначала. Как поправить?
|
|
#7
|
|||
|
|||
|
Код:
if Edit1.Text = '' then Exit;
DataModule1.AdoTable1.Filter := Format('[f1] like '+#39+'%s%%'+#39, [Edit1.Text]);
DataModule1.AdoTable1.Filtered := True;Вот так работает! Спасибо за помощь! Последний раз редактировалось lmikle, 07.09.2011 в 22:57. |
|
#8
|
||||
|
||||
|
Попробуй использовать ADOQuery. Средствами SQL это очень легко реализовать используя примерно такую конструкцию
Код:
'select * from <table> where <поле>='+Edit1.text |
|
#9
|
|||
|
|||
|
спасибо, попробую
|