![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отфильтровать таблицу по указанному полю (MS Access + ADO) [D7, MS Access]
BlackCat © (2003-12-23 04:17:00)
Доброго времени суток, уважаемые мастера!
Возникла проблема такого характера. Есть на форме AdoQuery, DBGrid и Edit.
Как можно сделать так, чтобы при вводе букв в Edit в DBGrid"e оставались только те записи, которые начинаются с этих букв.
Например вводишь "а", а в гриде остаются записи, начинающиеся с "а", "аб" - то начинающиеся с "аб".
заранее благодарен.
Silver Alex (2003-12-23 10:05:00) [1]
на событие OnFilterRecord
procedure TForm1.ADODataSet1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:=((pos(AnsiUpperCase( Edit1.Text), AnsiUpperCase(DataSet.FieldByName("name").AsString))=1) or
(Edit1.Text=EmptyStr)) ;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
ADODataSet1.Filtered:=false;
ADODataSet1.Filtered:=true;
end;
Sens (2003-12-23 08:36:00) [2]
Опс. ошибка в тексте.
DM.Sel_Mat.ParamByName("P_Name").AsString:= S_DOS+"%";
Sens (2003-12-23 08:33:00) [3]
DM - ДатаМодуль;
Sel_Mat - TQuery; (вместо TQuery может быть ADODataSet, только тогда вместо DM.Sel_Mat.SQL. должно быть DM.Sel_Mat.CommandText.)
S_DOS - начало строки, по которому делаем фильтр/выборку ;
DM.Sel_Mat.Active:=1=0;
DM.Sel_Mat.SQL.Clear;
DM.Sel_Mat.SQL.Add("select * from par_NC where Name LIKE :P_Name");
DM.Sel_Mat.ParamByName("P_Name").AsString:="S_DOS+"%";
DM.Sel_Mat.Active:=1=1;
chtr (2003-12-23 08:13:00) [4]
Использовать TEdit.onkeypress и TADOQuery.filter или параметры в запросе.