InStr in Recordset.Filter Property



我有一个Ado-Recordset,并希望以仪器条件过滤。我想找到,是否可以在较长的文本中找到表字段中的简短文本。如果我想要其他方式,我可以轻松地使用类似的操作员。

我尝试了以下代码:

Dim RS = New ADODB.recordset
RS.CursorLocation = adUseClient
RS.Open "SomeTable", SomeConnection, adOpenStatic, adLockOptimistic
RS.Filter = "InStr('SomeLongText', SomeField) > 0"

,但是如果我尝试过,我会得到运行时错误3001:&quot"参数是错误的类型或可接受的范围或彼此冲突。

所以,我有办法?

澄清这一点:我不想找到类似操作员可以做的方法。

不是:某个田野喜欢模式
相反:类似某种菲尔德的模式

举一个例子。我有这样的桌子:

ID Pattern
----------- 
1  AAA
2  BBB
3  CCC
4  DDD
5  EEE

然后我想找到一些文本,例如:"此文本包含一个BBB和一个EEE。"记录文本中的模式。在代码中:

RS.Filter = "InStr('This Text contains a BBB and an EEE.', Pattern) > 0"

将过滤具有ID 2和5的记录。

如果要在列中找到一些字符串,则可以使用以下方式:

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

首先打开记录集时也可以过滤:

Dim rs as Recordset
set rs = CurrentDb.OpenRecordset("SELECT * FROM SomeTable WHERE SomeField Like '*SomeLongText*'")

最新更新