powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Adodb recordset filter Like * по не строковому полю
14 сообщений из 14, страница 1 из 1
Adodb recordset filter Like * по не строковому полю
    #38048680
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть recordset, в нем есть поля с типом данных currency или date
Возможно, ли как ни будь делать фильтрацию по этим полям с использованием Like *
(Подозреваю, что ответ НЕТ)
Или возможно ли изменить тип данных в уже открытом рекордсете
Что-то типа такого: rs (1).Type = 202

Или подскажите вариант для выхода из ситуации
Конечно, можно преобразовывать данные в самом SQL запросе с помощью Cstr
Но может быть есть еще варианты?

З.Ы. почему в Access работает так:
WHERE (((Таблица1.поле1) Like "5*"));
И так
Filter =”((Таблица1.[ поле1] Like "5*"))”

DAO rulez?
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048692
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TpaBkaпочему в Access работает такнеявное приведение типов.

Использовать фильтрацию строкового типа для данных не-строкового типа - не лучшая идея. Разумнее строить правильные фильтры, соответствующие типу данных.
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048708
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaTpaBkaпочему в Access работает такнеявное приведение типов.

Использовать фильтрацию строкового типа для данных не-строкового типа - не лучшая идея. Разумнее строить правильные фильтры, соответствующие типу данных.

Хорошо, в рекордсете есть данные
5.8
5.3
55
74
83.3

Как их отфильтровать, что бы остались только те записи в которых присутствует 5
Тип поля currency
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048748
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TpaBkaЗ.Ы. почему в Access работает так:
WHERE (((Таблица1.поле1) Like "5*"));
И так
Filter =”((Таблица1.[ поле1] Like "5*"))”

DAO rulez?
и, что , такое "не работает" в запросе через АДО ?
то, что в АДО подстановочный символ - % - в курсе ?
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048772
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112TpaBkaЗ.Ы. почему в Access работает так:
WHERE (((Таблица1.поле1) Like "5*"));
И так
Filter =”((Таблица1.[ поле1] Like "5*"))”

DAO rulez?
и, что , такое "не работает" в запросе через АДО ?
то, что в АДО подстановочный символ - % - в курсе ?

пробовал * и % и ? брал значение и в ' ' и в chr(34) ни чего не помогает
Либо выскакивает ошибка "Не соответствие типов" либо же "Не удается открыть фильтр"
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048783
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TpaBka,

ну а так ?
Код: vbnet
1.
2.
3.
Filter ="cstr(Таблица1.[ поле1]) Like '5%'"
' или
Filter ="Таблица1.[ поле1] & '' Like '5%'"
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048799
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TpaBkaте записи в которых присутствует 5соответтсвенно фильтр должен быть '%5%', а не '5%'
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048819
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProTpaBkaте записи в которых присутствует 5соответтсвенно фильтр должен быть '%5%', а не '5%'
а ну да

Вот кто хочет потренироваться:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
'Dim rs As New ADODB.Recordset
Dim rs As Object
Set rs = CreateObject("ADODB.Recordset")

rs.Fields.Append "fld", 6 'тип поля adCurrency
'rs.Fields.Append "fld", 202, 2 'тип поля adVarWChar
rs.Open
For i = 1 To 25
    rs.AddNew
    rs(0) = i
Next
rs.Filter = rs(0).Name & " Like '%5%'"
MsgBox rs.RecordCount 'Должно быть 3
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048822
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TpaBkaКак их отфильтровать, что бы остались только те записи в которых присутствует 5
Тип поля currencyИскусственный какой-то примерчик... Не вижу в нем смысла, в чем согласен с Akina .
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048875
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMTpaBkaКак их отфильтровать, что бы остались только те записи в которых присутствует 5
Тип поля currencyИскусственный какой-то примерчик... Не вижу в нем смысла, в чем согласен с Akina .
Не вижу смысла излагать полностью всю задачу
Если кратко, то хочу сделать поиск на манер поиска в мобильнике, только по разным полям и с опцией:
искать с начала текста
искать в середине текста
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048927
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, типа бух помнит, что отправил сумму 125634879 руб., но куда - не помнит

Похоже, что только приводить данные к string для поиска. Можно расширить рекордсет - записывать в него "дублирующие" строковые поля, которые и пользовать.
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048947
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TpaBka
Код: vbnet
1.
rs.Filter = rs(0).Name & " Like '%5%'"



автор, тебя чё уговаривать нужно ?
вот так ты пробывал ??
Код: vbnet
1.
rs.Filter = rs(0).Name & " & '' Like '%5%'"
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048952
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM Можно расширить рекордсет - записывать в него "дублирующие" строковые поля, которые и пользовать.
Сейчас так и работает
Думал что есть способ проще
...
Рейтинг: 0 / 0
Adodb recordset filter Like * по не строковому полю
    #38048956
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112TpaBka
Код: vbnet
1.
rs.Filter = rs(0).Name & " Like '%5%'"



автор, тебя чё уговаривать нужно ?
вот так ты пробывал ??
Код: vbnet
1.
rs.Filter = rs(0).Name & " & '' Like '%5%'"


Да
Не катит
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Adodb recordset filter Like * по не строковому полю
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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