如下程序段:RS为一个RecordSet:
Str1="Field1='01' AND Field2='001'"
RS.find str1
总是提示错误,但如果Str1="Field1='01'"或Str1="Field2='001'"均可正常通过。
请问如何同时查找满足两个条件的数据?

解决方案 »

  1.   

    Find 方法
          在 Recordset 中搜索满足指定条件的行。可选择指定搜索方向、起始行和从起始行的偏移量。如果满足条件,当前行的位置将设置在找到的记录上;否则将把当前行位置设置为 Recordset 的结尾(或开始)处。语法Find (Criteria, SkipRows, SearchDirection, Start)参数Criteria   String 值,包含指定用于搜索的列名、比较操作符和值的语句。SkipRows   可选。Long 值,其默认值为零,它指定当前行或 Start 书签的行偏移量以开始搜索。在默认情况下,搜索将从当前行开始。SearchDirection   可选。SearchDirectionEnum 值,指定搜索应从当前行开始,还是从搜索方向的下一个有效行开始。如果该值为 adSearchForward,不成功的搜索将在 Recordset 的结尾处停止。如果该值为 adSearchBackward,不成功的搜索将在 Recordset 的开始处停止。Start   可选。Variant 书签,用于标记搜索的开始位置。说明在 criteria 中只能指定单列名称。此方法不支持多列搜索。<<<<<<<<<<<<<<<<<<<<<|||||Criteria 中的比较操作符可以是“>”(大于)、“<”(小于)、“=”(等于)、“>=”(大于或等于)、“<=”(小于或等于)、“<>”(不等于)或“like”(模式匹配)。Criteria 中的值可以是字符串、浮点数或者日期。字符串值用单引号或“#”标记(数字号)分隔(如“state = 'WA'”或“state = #WA#”)。日期值用“#”标记(数字号)分隔(如“start_date > #7/22/97#”)。如果比较操作符为“like”,可以在字符串值中包含星号 (*) 以查找一次或多次出现的任意字符或子字符串。例如,“state like 'M*'”与 Maine 和 Massachusetts 匹配。您还可以使用前导和后续星号以查找包含在值内的子字符串。例如,“state like '*as*'”与 Alaska、Arkansas 和 Massachusetts 匹配。星号可以只在条件字符串的结尾使用,也可以在条件字符串的开头和结尾一起使用,如上所示。不能将星号作为前导通配符 ('*str') 或嵌入通配符 ('s*r') 使用。这将引发错误。注意   如果在调用 Find 前未设置当前行的位置,将发生错误。设置行位置的任何方法(如 MoveFirst)都应在调用 Find 之前调用。
      

  2.   

    FIND 不能对多列进行查询,那么欲进行多列查询应用什么方法?
      

  3.   

    用SQL:select field1,field2,...,fieldn form data_table where field1='' and field2='' and ... and fieldn=''
    where 后可选
      

  4.   

    能将SELECT写的详细点吗?我没有怎么用过,它返回的是一个记录集吗?
      

  5.   

    SQL="select * from 你的数据表 where field1='01' and field2='001'"
    dim cmd as adodb.command
    set cmd=new adodb.command
    RS.open SQL,cnn,3,1