Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск в ADODB.Recordset / 11 сообщений из 11, страница 1 из 1
24.03.2003, 07:51
    #32125322
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
как организовать поиск типа
Like (*"xxx"*) AND Like (*"cccc"*)
в .mdb в .findfirsr , findnext..... проходит без проблем
а если рекордсет на основе ADODB.Recordset то MSAccess (.adp) ругается
нет у него такой возможности
а этого ну очень надо
или как это обойти
заранее спасибо
...
Рейтинг: 0 / 0
24.03.2003, 08:11
    #32125330
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
Свойство Filter, может быть.
Сам не пользовался, но в справке вроде написано, что можно.
...
Рейтинг: 0 / 0
24.03.2003, 09:01
    #32125345
progist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
в ADO.recordset нет FindFirst и FindNext
есть только:
recordset.Find Criteria, ScipRows, SearchDirection, Start
т.е. или указываешь направление поиска, или все время возвращаешься в начало
...
Рейтинг: 0 / 0
24.03.2003, 10:17
    #32125395
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
в ADO.recordset нет FindFirst и FindNext
есть только:
recordset.Find Criteria, ScipRows, SearchDirection, Start
т.е. или указываешь направление поиска, или все время возвращаешься в начало


всё правильно только Criteria не поддерживаен like and like

фильтр не подходит тк надо чтобы отображались все записи
только позиционироваться на записях по условию
...
Рейтинг: 0 / 0
24.03.2003, 15:51
    #32125748
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
2вадя
> только Criteria не поддерживаен like and like

из хэлпа:
The comparison operator in Criteria may be ">" (greater than), "<" (less than), "=" (equal), ">=" (greater than or equal), "<=" (less than or equal), "<>" (not equal), or "like" (pattern matching).

Так что можно и Like.
Like ("%xxx%") AND Like ("%cccc%")
Только вместо * - %
...
Рейтинг: 0 / 0
25.03.2003, 04:42
    #32126139
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
Только не забудь создать индексы по нужным полям на ADO-шном рекордсете, а то Find будет работать медленно на больших наборах записей.

Делаеться это по моему так:
rs.fields("Имя поля").properties("Optimize") = True
...
Рейтинг: 0 / 0
25.03.2003, 07:26
    #32126169
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
2Senin Viktor

всё правильно вид Like ("%xxx%") AND Like ("%cccc%") не поддерживается проверено!!!!!!!!!!!!
дальше в хелпе описаны ограничения. хотя такая конструкция и неописана конкретно , но выдается ошибка и с * и с %
2 Mind
это буду пробовать
...
Рейтинг: 0 / 0
25.03.2003, 09:10
    #32126216
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
2вадя
>всё правильно вид Like ("%xxx%") AND Like ("%cccc%") не поддерживается проверено!!!!!!!!!!!!

Черт! Забыл! Это же не DAO.
Прийдется искать сначала Like (*"xxx"*) , делать закладку, и искать Like (*"cccc"*) от этой закладки. Хотя это верно для OR, а не для AND (кстати, зачем искать вхожденияя xxx и сссс в одном поле, нельзя ли критерий ужесточить и искать сразу xxxcccc или xxx___cccc__xxx.
...
Рейтинг: 0 / 0
25.03.2003, 10:31
    #32126303
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
2Sevin Viktor
к примеру
порошок стиральный
порошок чистящий
паста чистящая

требуется найти "порошок чистящий"

набираем "пор чист" после небольшой обработки должны найти то что надо

оператору так проще

"небольшую обработку" кому итересно покажу
...
Рейтинг: 0 / 0
25.03.2003, 10:42
    #32126315
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
2вадя:
Я эту проблему решал несколько иначе - через запросы, где в поисковой форме оператор вводит значения, а в списке выпадают (например, клиенты) Like "*ТоЧтоВвелОператор*". Типа WHERE КодКонтрагента Like ""*" & Nz(Me![Search].Text, "")
Может и тебе так попробовать - через сохраненые запросы?
Поставишь Like ...And Like ... ссылкой на Forms("ПоисковаяФорма")("ПолеВвода")
На событие Change - обновление списка.
Правда в сети будут некоторые тормоза, но это все решаемо (например через времен. табл, которая создается в момен открытия поисквой формы, а по таймеру можено и актуализировать)

Кстати эту форму (описковую) сдлела универсальной для всей проги, взависоимости от OpenArgs используется свой источник.
...
Рейтинг: 0 / 0
25.03.2003, 17:03
    #32126762
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск в ADODB.Recordset
2Senin Victor
like and like для adp .find обошел,
несколько больше кода но работает также быстро и красиво

Вижу что поиск итнтересует не только меня

предлагаю свой вариант (операторам нравится , да и мне тоже)
по скорости и по удобству
есть решение для mdb и adp
в поле со списком набираем части слов через пробел ( количество ограничено
длиной поля (для ХП входной параметр) пробел аналогичен оператору & (and)
по события "после обновления" неольшой процедуркой формируем входной параметр для ХП, эту ХП делаем (вместе с входным параметром) источником строк для поля со списком .
В результате из списка в несколько тысяч получется список в несколько строк из которого можно уже стрелками ручками выбрать. работает мнгновенно сетка не тормозит.
достоинство : из сложного наименования набираеи только ключевые части
из ранее приведенного примера с порошками видно . после небольшого опыта операторы формируют список в 2-3 строчки
вместо полного набора достаточно набрать только семь символов
очень удобно рекомендую
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск в ADODB.Recordset / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]