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


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

фильтр не подходит тк надо чтобы отображались все записи
только позиционироваться на записях по условию
...
Рейтинг: 0 / 0
Поиск в ADODB.Recordset
    #32125748
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Поиск в ADODB.Recordset
    #32126139
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только не забудь создать индексы по нужным полям на ADO-шном рекордсете, а то Find будет работать медленно на больших наборах записей.

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

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

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

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

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

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

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

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

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

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


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