代码之家  ›  专栏  ›  技术社区  ›  Aranxo

记录集中的InStr.Filter属性

  •  0
  • Aranxo  · 技术社区  · 6 年前

    我有一个ADO记录集,想用Instr条件过滤它。我想知道,表字段中的短文本是否可以在长文本中找到。如果我想换一种方式,我可以很容易地使用LIKE运算符。

    我尝试了以下代码:

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

    但是如果我尝试这个,我会得到运行时错误3001: “参数的类型错误或超出可接受的范围,或者彼此冲突。”

    所以,我有办法吗?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Strawberryshrub    6 年前

    如果要在列中查找字符串,可以使用以下命令:

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

    还可以在第一次打开记录集时进行筛选:

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