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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2014, 14:14   #1
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию Фильтрация в DBGrid с помощью ComboBox и Edit

Здравствуйте. Не могу разобраться в фильтрации данных. В ComboBox выбираешь по какому столбцу будет происходить фильтрация, нужно отсеивать данные по мере ввода искомой строки в Edit. Делаю так:
Код:
procedure TForm2_books.Edit1Change(Sender: TObject);
begin
 if Length(Edit1.Text)>0 then
  begin
    ADOTable1_books.Filtered:=false;
    ADOTable1_books.Filter:=Combobox1.Text+'LIKE'+#39+Edit1.Text+'%'+#39;
    ADOTable1_books.Filtered:=true;
  end
  else ADOTable1_books.Filtered:=false;

end;
выходит ошибка как только начинаю вводить символы в Edit:
Безымянный.jpg
Valentina10121991 вне форума Ответить с цитированием
Старый 07.06.2014, 16:00   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

До и После LIKE пробел забыл.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.06.2014, 16:14   #3
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
До и После LIKE пробел забыл.
Да, спасибо. Работает, если в Combobox выбираешь поле на английском, а как сделать что бы выбиралось название поля на русском?
Valentina10121991 вне форума Ответить с цитированием
Старый 07.06.2014, 17:03   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В двойные ковычки имя поля, если не ошибаюсь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.06.2014, 17:12   #5
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию

И еще такая проблемка, если в Edit вводить цифры, так же выходить ошибка. Где то читала что вместо LIKE нужно ставить =? А если ставить = будут считываться только числовые значения?
Valentina10121991 вне форума Ответить с цитированием
Старый 07.06.2014, 17:16   #6
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В двойные ковычки имя поля, если не ошибаюсь.
Имена полей в Items когда заполняешь? Если да, то не подходит
Valentina10121991 вне форума Ответить с цитированием
Старый 07.06.2014, 17:46   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так поэкспериментируй - может в квадратных скобках бороться с дурью кириллических имен, может как-то иначе. А может ни как. Ни когда не использовал и нет проблем такого рода
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.06.2014, 17:50   #8
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Так поэкспериментируй - может в квадратных скобках бороться с дурью кириллических имен, может как-то иначе. А может ни как. Ни когда не использовал и нет проблем такого рода
Читаю, экспериментирую, пока ничего не получается
Valentina10121991 вне форума Ответить с цитированием
Старый 07.06.2014, 17:58   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По-моему так
для BDE: [ФИО] LIKE 'Пет%'
для ADO: "ФИО" LIKE 'Пет%'
Не забудь - LIKE только для символьных полей

Не получится - OnFilterRecord любую хотелку проглотит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.06.2014, 01:26   #10
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию

Что то я все равно ничего не могу сообразить Уже взяла вместо ComboBox DBLookupComboBox подключаю его к DataSource, а в DataField отображаются английские названия полей (т.к. они названы у меня в БД Аксесс), а в DBGrid поля отображаются на русском. Может быть я не правильно их переименовала? Переименовывала так: Выбрала компонент ADOTable и в Structure -> Fields -> правой кнопкой мыши Add all fields выбрала поле и установила у него свойство DisplayLabel. Может быть нужно было сделать по другому?
Valentina10121991 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значения из ComboBox + Edit поместить в DBGrid sveta_s БД в Delphi 7 05.06.2011 04:38
Поиск,combobox,edit,dbgrid Ravelin БД в Delphi 10 17.06.2010 18:52
Фильтрация с помощью CheckBox rocknrolla Помощь студентам 0 21.12.2009 21:10
поиск DBGrid+ComboBox+Edit dalien Общие вопросы Delphi 2 25.06.2009 22:56
Фильтрация в Delphi с помощью Combobox Веснушка_ната Помощь студентам 4 07.04.2009 02:36