Цитата:
Сообщение от Evgen_Balbes
а такой вопрос (для общего развития): если у меня на форме 2 таблицы BDGrid с одинаковыми полями [familiya] ,можно искать запись сразу в двух, при вводе данных в Edit1, используя вот такую конструкцию ?
Код:
procedure TForm2.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) > 0 then
begin
ADOQuery1.Filtered:=false;
ADOQuery2.Filtered:=false;
ADOQuery1.Filter:='[familiya] LIKE '+ '''' + Edit1.Text + '%' + '''';
ADOQuery2.Filter:='[familiya] LIKE '+ '''' + Edit1.Text + '%' + '''';
ADOQuery1.Filtered:=true;
ADOQuery2.Filtered:=true;
end
else ADOQuery1.Filtered:=false;
ADOQuery2.Filtered:=false;
end;
или это просто "ересь" студента 
|
Не вижу причин чтобы это не работало (не считая конечно же того, что содержимое else тоже нужно заключать в begin...end). И даже не обязательно чтобы в этих двух таблицах были одинаковыми имена полей по которым производится фильтрация.
А ещё эту конструкцию можно упростить как минимум таким образом:
Код:
procedure TForm2.Edit1Change(Sender: TObject);
begin
ADOQuery1.Filtered := False;
ADOQuery2.Filtered := False;
if Edit1.Text <> '' then
begin
ADOQuery1.Filter := '[familiya] LIKE '+ '''' + Edit1.Text + '%' + '''';
ADOQuery2.Filter := '[familiya] LIKE '+ '''' + Edit1.Text + '%' + '''';
ADOQuery1.Filtered := True;
ADOQuery2.Filtered := True;
end;
end;