比如我第一次输入一个关键字,想再缩小范围,在现在的结果中再按另一个关键字查询。我想到用FILTER,可是FILTER好像不能多次使用的吧?
我想最好能做到无限次再查询。

解决方案 »

  1.   

    sql="select name from student where studentid in( select studentid from class where class='99516'"
    不知道是不是这个意思
      

  2.   

    .filter可以多次使用,使用后再设置 .filter = 0,则还原。
      

  3.   

    大概是这个意思。可是如果我再查询这个操作执行三次的话,那你上面的这个SQL不就长得......。
    我现在想只能用select name from student where xxx
    如果再查询的话呢,就加上条件 and xx
    select name from student where xxx and xx。
    不过这样的话每次我都要打开recordset,执行rs.open "select ......"
    我本想能不能做到就打开一次rs,然后通过某种手逐渐减少rs中的记录。
    达到再查询的目的。
      

  4.   

    用filterrs.filter = "xxx='xxx'"再查询
    rs.filter = "xxx='xxx'" & "yyy='yyy'"
      

  5.   

    这是自己写的函数
    Private Sub Multi_Find(ByRef oRs As ADODB.Recordset, sCriteria As String, isNullData As Boolean)
         
         Dim clone_rs As ADODB.Recordset
         If isNullData Then Exit Sub
         Set clone_rs = oRs.Clone
         
         clone_rs.Filter = adFilterNone
         clone_rs.Filter = sCriteria
         
         If clone_rs.EOF Or clone_rs.BOF Then
            oRs.MoveLast
            oRs.MoveNext
         Else
            oRs.Book = clone_rs.Book
         End If
         
         clone_rs.Close
         Set clone_rs = Nothing
     End Sub
      

  6.   

    dim strwhere as string '保存查询条件
    dim strSQL as string '保存SQL语句
    strSQL = "select * from tableName where "
    '当产生第一个条件时
    strwhere = " 字段1 = 条件1"
    strSQL = strSQL & strwhere
    '执行strSQL查询语句
    '.............
    '...............
    '当产生第二个条件时
    strwhere = strwhere & " and 字段2 = 条件2"
    strSQL = strSQL & strwhere 
    '执行strSQL查询语句
    ...............
    ..........
    以此类推
    可以有N个条件
    ok?