Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2014, 16:47   #1
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию Фильтр по LookUp-полям работает?

в принципе вопрос в названии темы. Пробую фильтровать таблицу по lookup-полю (product_name)
вот код

Код:
procedure Tstorage_nalichie.Edit1Change(Sender: TObject);
begin
      if length(Edit1.Text)>0 then
      begin
      ADOTable1.Filtered:=false;
      ADOTable1.filter := 'product_name='+Quotedstr('%'+edit1.text);
      ADOTable1.Filtered:=true;
      end
      else
     ADOTable1.Filtered:=false;
end;
на что мне выдается ошибка "не удается найти объект в семействе, соответствующий требуемому имени или порядковому номеру"
Scorpuha вне форума Ответить с цитированием
Старый 10.09.2014, 16:58   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Если так , То работает ?
Код:
     if (Edit1.Text <>'')  then
      begin
       ADOTable1.Filtered:=false;
       ADOTable1.filter := '(product_name='''+ Trim(edit1.text) + '%'')';
       ADOTable1.Filtered:=true;
      end
      else
      ADOTable1.Filtered:=false;

Последний раз редактировалось xxbesoxx; 10.09.2014 в 17:00.
xxbesoxx вне форума Ответить с цитированием
Старый 10.09.2014, 17:01   #3
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

таже ошибка
Scorpuha вне форума Ответить с цитированием
Старый 10.09.2014, 17:11   #4
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Забил LIKE воть смотрите
Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
 if (Edit1.Text <>'')  then
  begin
     ADOTable1.Filtered:=false;
     ADOTable1.filter := '(Фамилия LIKE '''+ Trim(edit1.text) + '%'')';
     ADOTable1.Filtered:=true;
  end
  else
  ADOTable1.Filtered:=false;
end;

end.
Вложения
Тип файла: rar Filter.part01.rar (500.0 Кб, 8 просмотров)
Тип файла: rar Filter.part02.rar (500.0 Кб, 8 просмотров)
Тип файла: rar Filter.part03.rar (500.0 Кб, 8 просмотров)
Тип файла: rar Filter.part04.rar (500.0 Кб, 6 просмотров)
Тип файла: rar Filter.part05.rar (500.0 Кб, 7 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 10.09.2014, 17:12   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Еще один кусок . У вас должно работать так
Код:
 if (Edit1.Text <>'')  then
  begin
     ADOTable1.Filtered:=false;
     ADOTable1.filter := '(product_name LIKE '''+ Trim(edit1.text) + '%'')';
     ADOTable1.Filtered:=true;
  end
  else
  ADOTable1.Filtered:=false;
Вложения
Тип файла: rar Filter.part06.rar (380.7 Кб, 10 просмотров)

Последний раз редактировалось xxbesoxx; 10.09.2014 в 17:15.
xxbesoxx вне форума Ответить с цитированием
Старый 10.09.2014, 17:14   #6
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

у вас поле фамилия простое? просто мое поле product_name lookup
Scorpuha вне форума Ответить с цитированием
Старый 10.09.2014, 17:16   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Выложи пример посмотрю .... Там не причем lookup

Последний раз редактировалось xxbesoxx; 10.09.2014 в 17:19.
xxbesoxx вне форума Ответить с цитированием
Старый 10.09.2014, 21:59   #8
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

сейчас пример выложить не могу, остался на работе.
на вскидку: база Аксес, таблица storage и product. есть еще таблицы. В таблице storage есть поле id_product, в product естественно поле product_name. на форме где осуществляется фильтр есть Adotable1, она привязана к storage. В adotable1 создал поле product_name типа LookUp. Вот по нему и пытаюсь фильтровать.
Scorpuha вне форума Ответить с цитированием
Старый 10.09.2014, 22:22   #9
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Scorpuha Посмотреть сообщение
сейчас пример выложить не могу, остался на работе.
Делайте подробное пример и выложи . Мне не надо ваши проект который у вас на работе.
Еще было бы хорошо в месте ADOTable пользоватся ADOQuery который предназначен для SQL запроса . и научится язык SQL .
Но на данный момент поможем не переживай
xxbesoxx вне форума Ответить с цитированием
Старый 10.09.2014, 23:21   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По lookup полю фильтровать нельзя. Но можно по полю-связке.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
фильтр по двум полям Alex003 Помощь студентам 2 03.12.2011 11:39
Фильтр по полям Sfera БД в Delphi 6 11.11.2010 10:06
Фильтр по lookup в ADOTable cyphers1313 БД в Delphi 16 21.04.2010 17:43
Фильтр по lookup в ADOTable cyphers1313 Общие вопросы C/C++ 0 21.04.2010 10:48
ADO recordset фильтр по нескольким полям zmeevolk Microsoft Office Access 0 28.04.2009 16:23