Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > Поиск(ADOTable+MSAccess) |
Автор: Palladin 23.4.2009, 10:44 |
В триллионый раз поднимаю тему поиска, т.к. в поисковике не нашел ничего подходящего. Задача такова, есть таблица по ней необходимо сделать поиск на выбор по одному либо по ругому полю(все зависит от выбора в радиогруппе) Но именно поиск, не фильтр. И поиск не на 100%, а к примеру введем букву В указатель переместится на первую строку в которой В первая, наберем Валь, Указатель на первую строку в которой в поле встретилось Валь и т.п. Попробовал Locate вообще ничего не ошибок не результата |
Автор: Данкинг 23.4.2009, 10:52 |
А запрос с where... чем плох? ![]() |
Автор: Palladin 23.4.2009, 10:56 |
Не владею ![]() у меня поле 'ФИО' искать то что в FindEdit |
Автор: Данкинг 23.4.2009, 11:00 |
В общем случае - select * from BASE where FIO like ' "%'+trim(FindEdit.Text)+'%" ' |
Автор: Palladin 23.4.2009, 11:14 |
Хм=) как бы это помягче сказать=) я даже незнаю где это писать ![]() ![]() |
Автор: insoft 23.4.2009, 11:22 |
выброси ADOTable и используй ADOQuery... в ADOQuery в SQL пишешь запрос которой тебе необходим (в текущем случае это то что написал тебе Данкинг) или же можно всё сделать программным путём ;) |
Автор: Данкинг 23.4.2009, 11:26 | ||||
Ну так это (приёмы работы с БД) в любых книгах для начинающих описываются. А так ты в любом случае не поймёшь...
|
Автор: Palladin 23.4.2009, 11:30 |
Как я понял к ADOTable мне это не прикрутить, он SQL не держит да? А для ADOTable есть какойнить метод, а то как-то переписывать много где придется:( |
Автор: insoft 23.4.2009, 11:32 |
Palladin, только использовать Filter и Filtered |
Автор: insoft 23.4.2009, 11:47 |
самый полный но если нет времени разбираться а сделать всё тап-ляп, то пойдёт ![]() |
Автор: Palladin 23.4.2009, 11:57 |
Лана значит будет урок на будущее, придется программно, т.к. очень многое уже написано при замене ADOTable на ADOQuery придется считай заново всю программу написать ![]() |
Автор: insoft 23.4.2009, 12:02 | ||
Palladin да не мучайся ты используй Filter и Filtered
тоже самое будет |
Автор: Palladin 23.4.2009, 12:13 | ||||
Маразм крепчал и я нашел выход из положения ![]() была фильтрация, сделал поиск было:
стало:
Как видно по коду идет фильтрация, при ней находится нужная запись, запоминается номер строки, потом отключаем фильтрацию и по рекно переходим к нужной записи ![]() Интересно что будет происходит на экране если в таблциу забить 10к записей ![]() P.S. Такого маразма давно не писал ![]() Добавлено через 1 минуту и 37 секунд 2insoft, При фильтрации скрываются не подходящие условию записи, мне это ненадо, мне надо чтобы были видны все, а коретка так сказать подгонялась к найденной |
Автор: Kbl4AH 23.4.2009, 13:19 | ||
Ничего подобного, все работает, проверено ![]()
|
Автор: Palladin 23.4.2009, 13:24 |
2Kbl4AH, Писал точно так, толку не было, не ошибки не поиска, скорее всего где-то сморозил... |
Автор: Kbl4AH 23.4.2009, 13:30 | ||
из с опцией loPartialKey?!
© Borland Help Добавлено @ 13:30 А какой тип поля, по которому очуществляется поиск? Должен быть строковый! Для чисел - не прокатит! |