现有一表(内有字段:编号,名称,),设编号为流水号(6位顺序编码),现要求屏幕每次显示8个记录(即第一次显示第1~8条记录,第二次显示第9~16条记录,依次类推),请问应该如何写代码

解决方案 »

  1.   

    Dim rs As New ADODB.Recordset
    Private currentpage As Long
    Private Sub Command1_Click()
    rs.AbsolutePage = currentpage '当前页
    rs.PageSize = 8 ' 每次显示8条记录
    Do While Not rs.EOF
       '....做其它事情, 如显示
       '...
       rs.MoveNext
    Loop
    currentpage = currentpage + 1
    End SubPrivate Sub Form_Load()
    currentpage = 1
    End Sub
    没测试, 不过在ASP下面是这样的
      

  2.   

    一个示例:
    功能:
    使用 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