就是这样,rs为查询后的一个记录集,而我用了filter过滤了rs集,我现在就想把经过过滤后的集合,成为rs的新集合,请问该怎样写?

解决方案 »

  1.   

    这个意思?重新构造'定义另一个记录集Dim objrs As New ADODB.Recordset '添加字段名称For lCount = 0 To adoPrimaryRS.Fields.Count - 1 objrs.Fields.Append adoPrimaryRS.Fields(lCount).Name, adVarChar, adoPrimaryRS.Fields(lCount).DefinedSize Next '打开记录集objrs.Open '将指定记录数循环添加到objrs中 For lCount = 1 To nPageSize objrs.AddNew objrs!id = adoPrimaryRS!id objrs!anumber = adoPrimaryRS!anumber adoPrimaryRS.MoveNext Next
      

  2.   

    或者使用xml处理
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub Command1_Click()
        rs.CursorLocation = adUseClient
        rs.Open "Select * from students", cn, adOpenStatic, adLockBatchOptimistic
        MsgBox rs.RecordCount
        '保存为XML
        rs.Save "c:\bbb.xml", adPersistXML
        rs.Close
        '读取XML文件
        rs.Open "c:\bbb.xml", cn, adOpenStatic, adLockReadOnly, adCmdFile
        MsgBox rs.RecordCount
        rs.Close
    End SubPrivate Sub Form_Load()
        If cn.State = 1 Then
            cn.Close
        End If
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\db1.mdb"
    End Sub
      

  3.   

    晕``。。我再说一次``
    现有一个rs,当前它为满足某条件的记录集,我现在要在rs集里筛选满足某条件的记录集,将它们显示在datagrid控件上,并且,我想把过滤后的记录集替换掉rs里面的记录,那么,现在rs里的记录集就变成过滤后的记录集,rs里的记录的变化过程为:原记录集-变成经过筛选后的记录。就是这样简单!呵呵``我的问题就是怎样把原记录集变成过滤后的记录?
      

  4.   

    我的问题就是怎样把原记录集变成过滤后的记录?
    //用filter过滤,rs暂时变成一个新的符合过滤的"记录集"(原记录集并没有丢失),除非filter=""rs里的记录的变化过程为:原记录集-变成经过筛选后的记录
    //是不是要不满足过滤条件的记录?
    //把filter的过滤条件前加一个NOT
      

  5.   

    只能新new 一个recordset然后挨个的赋给他。
      

  6.   

    lxcc(虫子|专注于抢分) ( ) 信誉:114 不是~``我想要rs的记录集改变。假设现在rs的记录集的“分数”字段都为大于0的数,然后我把“名字”字段有个“杨”字的记录都过滤掉,但是,现在rs的记录集都是大于0的数,我想把过滤后的记录集替换掉,变成分数大于0且名字里没有“杨”字的记录集```不知道怎样实现`
      

  7.   

    还是那个rs呀。比如:
    Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim str As String
    conn.Open "dsn=sales"
    rs.Open "user", conn, adOpenStatic, adLockReadOnly
    rs.Filter = "user like 'y%'"
    fillgrid rs, MSGrid1
    rs.Close
    Set rs = Nothing