我用rs查询数据库,比如说,返回了100条记录。我该怎样取其中某一段的记录?比如,第10至20条记录?只有用rs.movenext循环到第10条记录吗?没有其它方法?

解决方案 »

  1.   

    sele * from table where recno() between 10 and 20
      

  2.   

    MSSQL用TOP返回
    MYSQL用LIMIT返回
      

  3.   

    可以使用AbsolutePage、PageCount 和 PageSize 属性来划分页。该范例使用 AbsolutePage、PageCount 和 PageSize 属性,以每次五个记录的方式显示雇员表中的姓名和受雇日期。Public Sub AbsolutePageX()
       
       Dim rstEmployees As ADODB.Recordset
       Dim strCnn As String
       Dim strMessage As String
       Dim intPage As Integer
       Dim intPageCount As Integer
       Dim intRecord As Integer   ' 使用客户端游标为雇员表打开一个记录集。
       strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       Set rstEmployees = New ADODB.Recordset
       ' 使用客户端游标激活 AbsolutePosition 属性。
       rstEmployees.CursorLocation = adUseClient
       rstEmployees.Open "employee", strCnn, , , adCmdTable
       
       ' 显示姓名和受雇日期,每次五个记录。
       rstEmployees.PageSize = 5
       intPageCount = rstEmployees.PageCount
       For intPage = 1 To intPageCount
          rstEmployees.AbsolutePage = intPage
          strMessage = ""
          For intRecord = 1 To rstEmployees.PageSize
             strMessage = strMessage & _
                rstEmployees!fname & " " & _ 
                rstEmployees!lname & " " & _ 
                rstEmployees!hire_date & vbCr
             rstEmployees.MoveNext
             If rstEmployees.EOF Then Exit For
          Next intRecord
          MsgBox strMessage
       Next intPage
       rstEmployees.CloseEnd Sub----------------------------
    也可以先
    rs.move 10,1
    然后再用rs.movenext一条一条取到第20条。