|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
DBgrid проблема с Поиском
Сделал поиск по базе данных DBgrid (БД а аксесе) путем ввода в edit'ы слова которое нужно найти. Столбцы по которым идет поиск называются "ПІБ" "Стать" "Вид роботи". По edit'у 1 и 2 поиск происходит нормально, все ищет и показывает в базе, пишу код на edit3 при поиске в нем выдает ошибку:
Ребята помогите исправить ошибку, не пойму в чем ее причина отказа работы 3 edit'а, код правильный, первые 2 на нем нормально ищут.. Код:
//ПОИСК // procedure TForm3.Edit1Change(Sender: TObject); begin if (edit1.text<>'') then begin BD.Filter:='(ПІБ LIKE '''+edit1.Text+'%'')'; BD.Filtered:=true; end else BD.Filtered:=false; end; procedure TForm3.Edit2Change(Sender: TObject); begin if (edit2.text<>'') then begin BD.Filter:='(Стать LIKE '''+edit2.Text+'%'')'; BD.Filtered:=true; end else BD.Filtered:=false; end; procedure TForm3.Edit3Change(Sender: TObject); begin if (edit3.text<>'') then begin BD.Filter:='(Вид роботи LIKE '''+edit3.Text+'%'')'; BD.Filtered:=true; end else BD.Filtered:=false; end; Последний раз редактировалось Admin, 13.04.2012 в 14:52. |
#2
|
|||
|
|||
Может подскажите другой поиск по базе, нужно чтобы фильтр поиска оставлял совпадение по всем столбцам базы если они есть и выводил только их...
|
#3
|
||||
|
||||
Знаю, в чём твой косяк, я по началу тоже так попадался.
Фильтр использует синтаксис SQL запроса. Чтобы он правильно работал, имя поля должно представлять из себя одно целое. А оно у тебя с пробелом. В результате для синтаксиса SQL оно предстаёт как два несвязанных между собой слова. Просто возьми имя поля в квадратные скобки, и всё будет работать: Код:
procedure TForm3.Edit3Change(Sender: TObject); begin if (edit3.text<>'') then begin BD.Filter:='([Вид роботи] LIKE '''+edit3.Text+'%'')'; BD.Filtered:=true; end else BD.Filtered:=false; end; Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому |
#4
|
|||
|
|||
Большое спасибо за помощь, помогли скобки!!!
|