![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Filter [D7, ACCESS]
wirg © (2006-05-11 17:01:00)Пишу фильтр, а он не срабатывает.
DM1.TabRepair.Filter:='Price >='+QuotedStr(UpperCase(CenaOt.Text))+' AND Price =< '+QuotedStr(UpperCase(CenaDo.Text))+'';
Подскажите в чём загвоздка?
sniknik (2006-05-11 20:37:00) [1]> да потом ещё и в гриде менять данные нельзя будет
можно. хотя там тоже свои тонкости есть.
> а с таблицей проще по-моему
молоток вместо отвертки щурупы заколачивать тоже проще...
wirg (2006-05-11 19:15:00) [2]Where это условие, я дикие запросы с 3 нормальной формой писать не хочу, да потом ещё и в гриде менять данные нельзя будет, а с таблицей проще по-моему
sniknik (2006-05-11 18:04:00) [3]> выбирать то что надо а затем
и фильтр не понадобится...
Плохиш (2006-05-11 18:04:00) [4]
> wirg (11.05.06 18:00) [21]
> В SQL фильтров же нету
Интересно, а конструкция WHERE что делает?
wirg (2006-05-11 18:00:00) [5]В SQL фильтров же нету, т.е вы предлагаете выбирать то что надо а затем фильтр применять?
Плохиш (2006-05-11 17:47:00) [6]
> Можно ли фильтр применить к DBGRID, т.е. к стобцу который
> является ссылкой на другой столбец другой таблицы....
Ужасть, надо же так завернуть :-(
Какой смысл применять фильтр к DBGrid, если в нём всё-равно данных нет, чего фильтровать собрался?
Используй событие OnFilterRecord у набора данных. Но лучше [19].
menart (2006-05-11 17:43:00) [7]а не проще на SQL перейти?
wirg (2006-05-11 17:40:00) [8]Можно ли фильтр применить к DBGRID, т.е. к стобцу который является ссылкой на другой столбец другой таблицы(в ADOтаблице у меня создан столбец который отображает данные из столбца другой таблицы), когда я пытаюсь применить к нему фильтр он выдаёт ошибку?
menart (2006-05-11 17:37:00) [9]<=
wirg (2006-05-11 17:34:00) [10]Всё спасибо. Понял знак не так стоял
wirg (2006-05-11 17:29:00) [11]showmessage(DM1.TabRepair.Filter)
Аргументы имеют неверный тип, выходят за пределы допустимого диапозона или вступают в конфкит друг с другом
menart (2006-05-11 17:29:00) [12]Поставь showmessage(DM1.TabRepair.Filter) после DM1.TabRepair.Filter:='Price >='+QuotedStr(CenaOt.Text)+' AND Price <='+QuotedStr(CenaDo.Text);, сообщи что выводит
wirg (2006-05-11 17:28:00) [13]Что толку пишу вот так выдаёт туже ошибку
DM1.TabRepair.Filtered:=false;
if Dates.Checked then DM1.TabRepair.Filter:='Date_repair >= '''+DateToStr(OtDate.Date)+''' AND Date_repair<''' +DateToStr(DoDate.Date) + '''';
if Cena.Checked then
DM1.TabRepair.Filter:='Price >='+QuotedStr(CenaOt.Text)+' AND Price =< '+QuotedStr(CenaDo.Text);
DM1.TabRepair.Filtered:=true ;
DBGrid1.Refresh;
Что можно сделать?
menart (2006-05-11 17:28:00) [14]
> Поставь showmessage(DM1.TabRepair.Filter) после DM1.TabRepair.Filter:='Price >='+QuotedStr(CenaOt.Text)+' AND Price =< '+QuotedStr(CenaDo.Text);, сообщи что выводит
wirg (2006-05-11 17:25:00) [15]Выдаёт Аргументы имеют неверный тип, выходят за пределы допустимого диапозона или вступают в конфкит друг с другом
menart (2006-05-11 17:23:00) [16]Фильтр включать нужно после изменения фильтра, так при изменение фильтра его параметр выпадает в false
menart (2006-05-11 17:21:00) [17]
DM1.TabRepair.Filter:='Price >='+QuotedStr(CenaOt.Text)+' AND Price =< '+QuotedStr(CenaDo.Text);
DM1.TabRepair.Filtered:=true
цыфры можно вообще без кавычек передовать.
wirg (2006-05-11 17:20:00) [18]Процедура вот такая
procedure TViewRepairs.Button1Click(Sender: TObject);
begin
DM1.TabRepair.Filtered:=true;
DBGrid1.DataSource.DataSet.Filtered:=true;
//фильтр по датам
if Dates.Checked then DM1.TabRepair.Filter:='Date_repair >= '''+DateToStr(OtDate.Date)+''' AND Date_repair<''' +DateToStr(DoDate.Date) + '''';
if Cena.Checked then DM1.TabRepair.Filter:='Price >='''+QuotedStr(CenaOt.Text)+''' AND Price =< '''+QuotedStr(CenaDo.Text)+'''';
DBGrid1.Refresh;
end;
sniknik (2006-05-11 17:18:00) [19]числа можно без строковых кавычек, и регистр у них един... "=<" такого знака вроде бы нет ?
menart (2006-05-11 17:16:00) [20]
> wirg (11.05.06 17:04) [2]
> Уже стоит
До того как ты меняешь фильтр или после?
Покажи полностью процедуру, где это выполняется.
Поставь showmessage(DM1.TabRepair.Filter) после включения фильтра, сообщи что выводит