InStr в свойстве Recordset.Filter - PullRequest
0 голосов
/ 10 мая 2019

У меня есть набор записей ADO и я хочу отфильтровать его по условию Instr. Я хочу выяснить, можно ли найти короткий текст в поле таблицы в более длинном тексте. Если бы я хотел по-другому, я мог бы легко использовать оператор LIKE.

Я попробовал следующий код:

Dim RS = New ADODB.recordset
RS.CursorLocation = adUseClient
RS.Open "SomeTable", SomeConnection, adOpenStatic, adLockOptimistic

RS.Filter = "InStr('SomeLongText', SomeField) > 0"

Но если я попробую это, я получу сообщение об ошибке 3001: «Аргументы имеют неправильный тип или находятся за пределами допустимого диапазона или противоречат друг другу».

Итак, есть ли способ?

1 Ответ

0 голосов
/ 13 мая 2019

Если вы хотите найти некоторую строку в столбце, вы можете использовать это:

rs.Filter = "SomeField Like '*SomeLongText*'"

Вы также можете фильтровать при открытии набора записей в первую очередь:

Dim rs as Recordset
set rs = CurrentDb.OpenRecordset("SELECT * FROM SomeTable WHERE SomeField Like '*SomeLongText*'")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...