Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Filter [D7, ACCESS]


Страницы:   1 2

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) после включения фильтра, сообщи что выводит


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо