比如,VB+SQL+ADO,一个窗体只显示5条记录,如果有12条记录,怎么样实现向上向下翻页查看其他的记录,最好能贴个实例

解决方案 »

  1.   

    提供个思路,每次提取记录时只取5个,下一个从第六个开始提取,主要是sql语句的写法吧
      

  2.   

    '在表单中建一个listview控件(listview1),两个commandbutton控件(commP,commN),贴入如下代码Private connStr As String
    Private rstEmployees As New ADODB.Recordset
    Private connTemp As New ADODB.Connection
    Private intPageCount As Integer
    Private intPage As Integer
    Private itemTemp As ListItem
    Const PageSize As Integer = 5
    Private Sub commN_Click()
    Dim i As Integer
    Dim i2 As IntegerMe.ListView1.ListItems.ClearintPage = intPage + 1
    rstEmployees.AbsolutePage = intPageFor i = 1 To PageSize
        Set itemTemp = Me.ListView1.ListItems.Add
        itemTemp.Text = rstEmployees.Fields(0).Value
        For i2 = 1 To rstEmployees.Fields.Count - 1
            itemTemp.SubItems(i2) = rstEmployees.Fields(i2)
        Next
        rstEmployees.MoveNext
    Next
    End SubPrivate Sub commP_Click()
    Dim i As Integer
    Dim i2 As Integer
    Me.ListView1.ListItems.ClearintPage = intPage - 1
    rstEmployees.AbsolutePage = intPageFor i = 1 To PageSize
        Set itemTemp = Me.ListView1.ListItems.Add
        itemTemp.Text = rstEmployees.Fields(0).Value
        For i2 = 1 To rstEmployees.Fields.Count - 1
            itemTemp.SubItems(i2) = rstEmployees.Fields(i2)
        Next
        rstEmployees.MoveNext
    NextEnd SubPrivate Sub Form_Load()
    constr = "[自己写]"
    connTemp.Open constr
    rstEmployees.CursorLocation = adUseClient
    rstEmployees.Open "[自己写]", connTemp, 1, 4intPage = 1
    rstEmployees.PageSize = PageSize
    intPageCount = rstEmployees.PageCountIf intPageCount < 1 Then
        Exit Sub
    End If
    Dim i As Integer
    Dim i2 As Integeri2 = rstEmployees.Fields.CountMe.ListView1.ColumnHeaders.ClearFor i = 0 To i2 - 1
        Me.ListView1.ColumnHeaders.Add , , rstEmployees.Fields(i).Name
    NextrstEmployees.AbsolutePage = intPageFor i = 1 To PageSize
        Set itemTemp = Me.ListView1.ListItems.Add
        itemTemp.Text = rstEmployees.Fields(0).Value
        For i2 = 1 To rstEmployees.Fields.Count - 1
            itemTemp.SubItems(i2) = rstEmployees.Fields(i2)
        Next
        rstEmployees.MoveNext
    NextintPage = intPage + 1End SubPrivate Sub Form_Unload(Cancel As Integer)
    rstEmployees.Close
    connTemp.Close
    Set rstEmployees = Nothing
    Set connTemp = Nothing
    End Sub
      

  3.   

    'BeginAbsolutePageVB    'To integrate this code
        'replace the data source and initial catalog values
        'in the connection stringPublic Sub Main()
        On Error GoTo ErrorHandler
      
        'recordset and connection variables
        Dim rstEmployees As ADODB.Recordset
        Dim Cnxn As ADODB.Connection
        Dim strCnxn As String
        Dim strSQL As String
            'record variables
        Dim strMessage As String
        Dim intPage As Integer
        Dim intPageCount As Integer
        Dim intRecord As Integer    'Open connection
        Set Cnxn = New ADODB.Connection
        strCnxn = "Provider='sqloledb';Data Source='MySqlServer';" & _
            "Initial Catalog='Pubs';Integrated Security='SSPI';"
        Cnxn.Open strCnxn
        
        ' Open employee recordset
        ' Use client cursor to enable AbsolutePosition property
        Set rstEmployees = New ADODB.Recordset
        strSQL = "employee"
        rstEmployees.Open strSQL, strCnxn, adUseClient, adLockReadOnly, adCmdTable
       
        ' Display names and hire dates, five records at a time
        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
       
        ' clean up
        rstEmployees.Close
        Cnxn.Close
        Set rstEmployees = Nothing
        Set Cnxn = Nothing
        Exit Sub
        
    ErrorHandler:
        ' clean up
        If Not rstEmployees Is Nothing Then
            If rstEmployees.State = adStateOpen Then rstEmployees.Close
        End If
        Set rstEmployees = Nothing
        
        If Not Cnxn Is Nothing Then
            If Cnxn.State = adStateOpen Then Cnxn.Close
        End If
        Set Cnxn = Nothing
        
        If Err <> 0 Then
            MsgBox Err.Source & "-->" & Err.Description, , "Error"
        End If
    End Sub
    'EndAbsolutePageVB
      

  4.   

    Private Sub commN_Click()
    Dim i As Integer
    Dim i2 As IntegerMe.ListView1.ListItems.ClearintPage = intPage + 1If intPage > intPageCount Then
        intPage = intPageCount
        MsgBox "数据已到最后一页,不能后移!"
    End IfrstEmployees.AbsolutePage = intPageFor i = 1 To PageSize
        Set itemTemp = Me.ListView1.ListItems.Add
        itemTemp.Text = rstEmployees.Fields(0).Value
        For i2 = 1 To rstEmployees.Fields.Count - 1
            itemTemp.SubItems(i2) = rstEmployees.Fields(i2)
        Next
        rstEmployees.MoveNext
    Next
    End SubPrivate Sub commP_Click()
    Dim i As Integer
    Dim i2 As Integer
    Me.ListView1.ListItems.ClearintPage = intPage - 1
    If intPage > 1 Then
        intPage = 1
        MsgBox "数据已到最前一页,不能前移!"
    End IfrstEmployees.AbsolutePage = intPageFor i = 1 To PageSize
        Set itemTemp = Me.ListView1.ListItems.Add
        itemTemp.Text = rstEmployees.Fields(0).Value
        For i2 = 1 To rstEmployees.Fields.Count - 1
            itemTemp.SubItems(i2) = rstEmployees.Fields(i2)
        Next
        rstEmployees.MoveNext
    NextEnd Sub加入了错误判断,更多的错误码判断请自己试着写一下。
      

  5.   

    To: daisy8675(莫依) 
    有没有向上翻页的代码To: cnapc(明月照大江)我在一个窗体上放5个label,就是把12条记录逐一显示在label上面,可是用你的方法,我怎么也实现不了向上翻页的功能,郁闷
      

  6.   

    http://blog.csdn.net/online/archive/2004/08/05/66417.aspx
      

  7.   

    '在表单中建一个listview控件(listview1),两个commandbutton控件(commP,commN),贴入如下代码你好象没有仔细看代码前的这一段说明哦。这个代码是将数据写入到Listview1控件中的。如果一定要写到label中,自已可以改一改代码嘛。
      

  8.   

    5个label,就是把12条记录逐一显示在label上面?