|
|
|
Supreme Being
      
участник
Last Login: 06.03.2007 22:22
Сообщ.: 115,
Visits: 1 254
|
|
| открываю рекордсет при помощи ADO. необходимо найти запись методом .Find с использованием выражения МоеПоле LIKE 'строка*'. Все нормально, пока МоеПоле является строковым, а при попытке поиска по числовым полям и полям с типом дата происходит ошибка, что впрочем и не удивительно. Решил это проблему, как мне кажется, не очень удачно, а именно: при открытии рекордсета создаю вычисляемое поле с формулой Cstr("ЧисловоеПоле") и уже в этом строковом поле использую LIKE. Может кто подскажет, есть ли более красивое решение этой задачи
|
|
|
|
|
Supreme Being
      
участник
Last Login: 10.08.2007 15:25
Сообщ.: 234,
Visits: 2 142
|
|
Labuda (06.05.2006) открываю рекордсет при помощи ADO. необходимо найти запись методом .Find с использованиемвыражения МоеПоле LIKE 'строка*'. Все нормально, пока МоеПоле является строковым, а при попытке поиска по числовым полям и полям с типом дата происходит ошибка, что впрочем и не удивительно. Решил это проблему, как мне кажется, не очень удачно, а именно: при открытии рекордсета создаю вычисляемое поле с формулой Cstr("ЧисловоеПоле") и уже в этом строковом поле использую LIKE.
Может кто подскажет, есть ли более красивое решение этой задачи
А разве при поиске, используя LIKE в ADO используется *, а не %. Вы уверены, что правильно написано?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.03.2007 22:22
Сообщ.: 115,
Visits: 1 254
|
|
| тут все правильно. нужно * использовать
|
|
|
|
|
Supreme 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
|
|
|
|