Поиск записей с использованием LIKE
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Поиск записей с использованием LIKE Expand / Collapse
Автор
Сообщение
06.05.2006 10:12
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.03.2007 22:22
Сообщ.: 115, Visits: 1 254
открываю рекордсет при помощи ADO. необходимо найти запись методом .Find с использованием выражения МоеПоле LIKE 'строка*'. Все нормально, пока МоеПоле является строковым, а при попытке поиска по числовым полям и полям с типом дата происходит ошибка, что впрочем и не удивительно. Решил это проблему, как мне кажется, не очень удачно, а именно: при открытии рекордсета создаю вычисляемое поле с формулой Cstr("ЧисловоеПоле") и уже в этом строковом поле использую LIKE.

Может кто подскажет, есть ли более красивое решение этой задачи

Сообщ. #896643
04.07.2006 20:23
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 10.08.2007 15:25
Сообщ.: 234, Visits: 2 142
Labuda (06.05.2006)
открываю рекордсет при помощи ADO. необходимо найти запись методом .Find с использованиемвыражения МоеПоле LIKE 'строка*'. Все нормально, пока МоеПоле является строковым, а при попытке поиска по числовым полям и полям с типом дата происходит ошибка, что впрочем и не удивительно. Решил это проблему, как мне кажется, не очень удачно, а именно: при открытии рекордсета создаю вычисляемое поле с формулой Cstr("ЧисловоеПоле") и уже в этом строковом поле использую LIKE.

Может кто подскажет, есть ли более красивое решение этой задачи


А разве при поиске, используя LIKE в ADO используется *, а не %. Вы уверены, что правильно написано?
Сообщ. #900087
04.07.2006 21:54
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.03.2007 22:22
Сообщ.: 115, Visits: 1 254
тут все правильно. нужно * использовать
Сообщ. #900092
05.07.2006 7:22
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 10.08.2007 15:25
Сообщ.: 234, Visits: 2 142
ну у меня запрос


Set rst = CurrentDb.OpenRecordset("Select ID from ANT_Type where ID like '2*' order by id desc")
MsgBox rst.Fields(1)
Set rst = Nothing

Результат 26. Максимальный ID=26


Вывел все правильно. как и ожидалось. Т.е. при таком подходе происходит неявное преобразование типов и сортировка/поиск происходит в лексикографическом порядке. Т.е. если в запросе поставить Asc вместо Desc, то будет выбран кортеж с ID=2
Сообщ. #900104
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 4:15