Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
ВнизКак построить такой запрос... Найти похожие ветки
← →
BlackCat (2003-12-16 18:27) [0]Доброго времени суток, Уважаемые мастера. Ситуация такая:
Есть БД на Access,
На форме Есть DBGrid, DataSource, и AdoQuery, Edit
А как можно сделать так, чтобы при возникновении события OnChange
у Edit"а В DBGrid"е оставались только те записи, с которые начинаются с буквы, введенной в Edit, вводишь следующую букву, они еще отсортировываются???
Заранее благодарен.
← →
Anatoly Podgoretsky (2003-12-16 18:32) [1]LIKE
← →
JibSkeart (2003-12-16 18:34) [2]..onChange(...)
begin
if (Edit1.text != "") then
begin
DBGrid.Filtered := true;
DBgrid.Filter := "fieldname like ""+Edit1.Text+""%"";
end
else
DBGrid.Filtered := false
end;
Это ??
← →
BlackCat (2003-12-16 18:51) [3]Да, но только почему у меня DBGrid сразу же становится пустой, после ввода первой буквы, хотя слова, начинающиеся с этой буквы есть в том поле, к которому применяю фильтрацию???
P.S. Кароче почему-то не фурычит :((
← →
BlackCat (2003-12-16 19:30) [4]
> JibSkeart © (16.12.03 18:34) [2]
> ..onChange(...)
> begin
> if (Edit1.text != "") then
> begin
> DBGrid.Filtered := true;
> DBgrid.Filter := "fieldname like ""+Edit1.Text+""%""
и по моему надо применять не к граду, а к AdoQuery
← →
BlackCat (2003-12-17 09:24) [5]
> BlackCat © (16.12.03 18:51) [3]
> Да, но только почему у меня DBGrid сразу же становится пустой,
> после ввода первой буквы, хотя слова, начинающиеся с этой
> буквы есть в том поле, к которому применяю фильтрацию???
>
> P.S. Кароче почему-то не фурычит :((
Ну хоть кто-нить помогите, плиззззз...
← →
JibSkeart (2003-12-17 09:29) [6]Да к Query
Сорри за ошибочку :)
да и попробуй раставить ковычки везде одинарные
← →
Vilen (2003-12-21 16:24) [7]Have fun with this untill you find a better solution!
procedure TForm1.Edit1Change(Sender: TObject);
var s : string;
begin
If Edit1.Text > " " then
s := Edit1.Text + "%";
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add("select field_name " +
"from table_name " +
"where field_name like :field_name");
ADOQuery1.Parameters[0].Value := s ;
ADOQuery1.Open;
end;
← →
gestern1 (2003-12-21 16:57) [8]У меня ibx, но тоже самое
procedure TForm1.Edit5Change(Sender: TObject);
var
sql:string;
begin
sql:="Select * from CLIENTS where Fam Like """+edit5.text+"%"+"""";
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(sql);
IBQuery1.Open;
IBQuery1.First;
end;
← →
bon (2003-12-22 09:14) [9]текст запроса:
declare @str as nvarchar
set @str= :par1
Select * from CLIENTS
where Fam Like "%"+@str+"%"
код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.Parameters[0].Value:=Edit1.Text ;
ADOQuery1.Open;
end;
← →
Johnmen (2003-12-22 09:17) [10]>bon © (22.12.03 09:14)
Это текст процедуры... И, казалось бы, причем тут аксесс ?
← →
Silver Alex (2003-12-22 09:43) [11]на событие 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;
← →
Johnmen (2003-12-22 09:52) [12]>Silver Alex © (22.12.03 09:43)
Так интересно. Но работать не будет...:)
← →
Silver Alex (2003-12-22 10:05) [13]
> Johnmen © (22.12.03 09:52) [12]
а если еще вот так?
procedure TForm1.Edit1Change(Sender: TObject);
begin
ADODataSet1.Filtered:=false;
ADODataSet1.Filtered:=true;
end;
← →
Johnmen (2003-12-22 10:07) [14]>Silver Alex © (22.12.03 10:05)
Тогда возможно...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.01.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c