在得到一个记录集rs后,又要对记录集中的某些记录进行汇总等操作。
能不能有“ select * from rs where ..."之类的语句,如果没有,怎么实现这个功能呢?

解决方案 »

  1.   

    select * from rs where(select .....)
      

  2.   

    select sum(f) form (select * from table1 where ...  )
      

  3.   

    记得好像可以用QueryDef,select * from qdf where ..."
    不太清楚了,自己看一下是否可行
      

  4.   

    用rs.filter一个简单例子:
    Public Sub FilterX()   Dim rstPublishers As ADODB.Recordset
       Dim rstPublishersCountry As ADODB.Recordset
       Dim strCnn As String
       Dim intPublisherCount As Integer
       Dim strCountry As String
       Dim strMessage As String   ' 使用出版商表中的数据打开记录集。
       strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       Set rstPublishers = New ADODB.Recordset
       rstPublishers.CursorType = adOpenStatic
       rstPublishers.Open "publishers", strCnn, , , adCmdTable   ' 充填记录集。
       intPublisherCount = rstPublishers.RecordCount   ' 获得用户输入。
       strCountry = Trim(InputBox( _
          "Enter a country/region to filter on:"))   If strCountry <> "" Then
          ' 打开已筛选的记录集对象。
          Set rstPublishersCountry = _
             FilterField(rstPublishers, "Country", strCountry)      If rstPublishersCountry.RecordCount = 0 Then
             MsgBox "No publishers from that country/region."
          Else
             ' 打印原始记录集和已筛选记录集对象的记录数。
             strMessage = "Orders in original recordset: " & _
                vbCr & intPublisherCount & vbCr & _
                "Orders in filtered recordset (Country = '" & _
                strCountry & "'): " & vbCr & _
                rstPublishersCountry.RecordCount
             MsgBox strMessage
          End If
          rstPublishersCountry.Close   End IfEnd SubPublic Function FilterField(rstTemp As ADODB.Recordset, _
       strField As String, strFilter As String) As ADODB.Recordset   ' 在指定的记录集对象上设置筛选操作并打开一个新的记录集对象。
       rstTemp.Filter = strField & " = '" & strFilter & "'"
       Set FilterField = rstTempEnd Function
      

  5.   

    rs.clone配合其他属性可以