解决方案 »

  1.   

    分页PageSize 属性
          指示 Recordset 中一页所包含的记录数。设置和返回值设置或返回长整型值,该值指示某页上的记录数。默认值为 10。说明使用 PageSize 属性可确定组成逻辑数据页的记录数。建立页的大小允许使用 AbsolutePage 属性移动到特定页的第一个记录。在您希望允许用户对数据进行分页时,该属性在 Web-服务器方案中非常有用,可用来在某一时刻查看一定数量的记录。随时可以设置该属性,其值将用来计算特定页第一个记录的位置。
    AbsolutePage 属性
          指定当前记录所在的页。设置和返回值设置或返回从 1 到 Recordset 对象 (PageCount) 所含页数的长整型值,或者返回以下常量。常量 说明 
    AdPosUnknown Recordset 为空,当前位置未知,或者提供者不支持 AbsolutePage 属性。 
    AdPosBOF 当前记录指针位于 BOF(即 BOF 属性为 True)。 
    AdPosEOF 当前记录指针位于 EOF(即 EOF 属性为 True)。 
    说明使用 AbsolutePage 属性可识别当前记录所在的页码。使用 PageSize 属性可将 Recordset 对象逻辑划分为一系列的页,每页的记录数等于 PageSize(最后页除外,该页记录数较少)。提供者必须支持该属性的相应功能才能使用该属性。与  AbsolutePosition 属性一样,AbsolutePage 从 1 开始并在当前记录为 Recordset 中的第一个记录时等于 1。设置该属性可移动到特定页的第一个记录。从 PageCount 属性中可获得总页数。
      

  2.   

    PageCount 属性
          指示  Recordset 对象包含的数据页数。返回值返回长整型值。说明使用 PageCount 属性可确定 Recordset 对象中数据的页数。“页”是大小等于 PageSize 属性设置的记录组。即使最后页不完整,由于记录数比 PageSize 值少,该页也会作为 PageCount 值中的附加页进行计数。如果 Recordset 对象不支持该属性,该值为 -1 以表明 PageCount 无法确定。有关页的功能的详细信息,请参阅 PageSize 和 AbsolutePage 属性。
    AbsolutePosition 属性
          指定 Recordset 对象当前记录的序号位置。设置和返回值设置或返回从 1 到 Recordset 对象 (PageCount) 所含页数的长整型值,或者返回以下常量。常量 说明 
    AdPosUnknown Recordset 为空,当前位置未知,或者提供者不支持 AbsolutePage 属性。 
    AdPosBOF 当前记录指针位于 BOF(即 BOF 属性为 True。) 
    adPosEOF 当前记录指针位于 EOF(即 EOF 属性为 True。) 
    说明使用 AbsolutePosition 属性可根据其在 Recordset 中的序号位置移动到记录,或确定当前记录的序号位置。提供者必须支持该属性的相应功能才能使用该属性。同 AbsolutePage 属性一样,AbsolutePosition 从 1 开始,并在当前记录为 Recordset 中的第一个记录时等于 1。从 RecordCount 属性可获得 Recordset 对象的总记录数。设置 AbsolutePosition 属性时,即使该属性指向位于当前缓存中的记录,ADO 也将使用以指定的记录开始的新记录组重新加载缓存。CacheSize 属性决定该记录组的大小。注意   不能将 AbsolutePosition 属性作为替代的记录编号使用。删除前面的记录时,给定记录的当前位置将发生改变。如果 Recordset 对象被重新查询或重新打开,则无法保证给定记录有相同的 AbsolutePosition。书签仍然是保持和返回给定位置的推荐方式,并且在所有类型的 Recordset 对象的定位时是唯一的方式。
      

  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