请问高手:如下代码错在哪里?如何从已有记录集中生成新的子记录集?Function FilterField(rstTemp As Recordset, strField As String, strFilter As String) As Recordset  
   rstTemp.Filter = strField & " = '" & strFilter & "'"
      Set FilterField = rstTemp.OpenRecordsetEnd Function执行 Set rst = FilterField(rs, "rs.Fields(7)", KeyStr) 时,提示类型不匹配。已知:rs为已存在记录集,keystr为 关键字(字符串) ,用dao 连接数据库已成功,rs已经取得。目的是:想从rs中抽取字段xxx中的值(字符型)=keystr的记录,形成新的记录集。请高手指教!谢谢!◎-◎

解决方案 »

  1.   

    Set rst = FilterField(rs, rs.Fields(7).name , KeyStr)
      

  2.   

    Function FilterField(rstTemp As Recordset, strField As String, strFilter As String) As Recordset  
       rstTemp.Filter = strField & " = '" & strFilter & "'"
          Set FilterField = rstTemp
    End Function
      

  3.   

    Set rst = FilterField(rs, rs.Fields(7).name , KeyStr)
      

  4.   

    谢谢各位高手的支持!但是,我修改过后,错误依旧是出在:Set rst = FilterField(rs, rs.Fields(7).name , KeyStr) 语句上!rs.Fields(7).name 已经取得预期的字段名,keystr的值也取到了。设置断点显示:还没有调用FilterField函数时,就已经出问题了!“实时错误(3)类型不匹配”,rs记录集有数据啊,用boxlist检测,的确是有期望的数据。问题能出在哪?是DAO 的问题?还是什么?真郁闷,请高手们不吝赐教!
      

  5.   

    string  ss
    ss=rs.fields(7).name
    Set rst = FilterField(rs, ss , KeyStr)