一、用image或picturebox 都可以二、form--code ------------- Option Explicit Dim PageSize As Integer Dim PageNum As IntegerPrivate Sub cmd_PageDown_Click() PageSize = Val(Trim(Me.Text1.Text)) PageNum = Val(Trim(Me.Text2.Text))
PageNum = PageNum + 1 If PageNum > Rs.PageCount Then PageNum = Rs.PageCount Me.Text2.Text = PageNum
Call ShowData(PageSize, PageNum) End SubPrivate Sub cmd_PageUP_Click()
With Me .Text1.Text = "" .Text2.Text = "" With .Label1 .Caption = "" .ForeColor = vbBlue End With .Label2.Caption = "" .Text1.Text = "5" .Text2.Text = "1" With .ListView1 With .ColumnHeaders .Add , , "ID" .Add , , "Userid" .Add , , "UserName" End With End With End With
Call ShowData(PageSize, PageNum) End SubPrivate Sub Form_Unload(Cancel As Integer) Call CloseDB End Sub
module----code ---------------- Option Explicit Public Conn As ADODB.Connection Public Rs As ADODB.RecordsetPublic Function iniDB() If Not Conn Is Nothing Then Set Conn = Nothing Set Conn = New ADODB.Connection Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" Conn.Open
If Not Rs Is Nothing Then Set Rs = Nothing Set Rs = New ADODB.Recordset Rs.Open "Select * From Table1", Conn, adOpenKeyset, adLockOptimistic, adCmdText frmMain.Label1.Caption = "共有记录:" & Rs.RecordCount & "条" Debug.Print "iniDB" End Function Public Function ShowData(ByVal intPageSize As Integer, ByVal intCurPageNum As Integer) Dim i As Integer Dim CurListItem As ListItem
If intCurPageNum <= Rs.PageCount Then If intCurPageNum = 0 Then Exit Function
If intCurPageNum = 1 Then Rs.MoveFirst Else If Rs.AbsolutePage = adPosEOF Then Rs.Move intPageSize * (intCurPageNum - Rs.PageCount) ' + 1 Else Rs.Move intPageSize * (intCurPageNum - Rs.AbsolutePage) ' + 1 End If End If
Rs.PageSize = intPageSize
frmMain.ListView1.ListItems.Clear While Rs.AbsolutePage = intCurPageNum With frmMain With .ListView1 With .ListItems Set CurListItem = .Add(, , Rs("id").Value) With CurListItem .SubItems(1) = Rs("Userid").Value .SubItems(2) = Rs("UserName").Value End With End With End With End With Rs.MoveNext Wend frmMain.Label2.Caption = intCurPageNum & "/" & Rs.PageCount frmMain.Label2.ForeColor = vbRed Else MsgBox "已经超过总页数的大小!"
End If Rs.MoveFirst
End Function Public Function CloseDB() If Rs.State <> 0 Then Rs.Close Set Rs = Nothing If Conn.State <> 0 Then Conn.Close Set Conn = Nothing Debug.Print "CloseDB" End Function
-------------
Option Explicit
Dim PageSize As Integer
Dim PageNum As IntegerPrivate Sub cmd_PageDown_Click()
PageSize = Val(Trim(Me.Text1.Text))
PageNum = Val(Trim(Me.Text2.Text))
PageNum = PageNum + 1
If PageNum > Rs.PageCount Then PageNum = Rs.PageCount
Me.Text2.Text = PageNum
Call ShowData(PageSize, PageNum)
End SubPrivate Sub cmd_PageUP_Click()
PageSize = Val(Trim(Me.Text1.Text))
PageNum = Val(Trim(Me.Text2.Text))
PageNum = PageNum - 1
If PageNum < 1 Then PageNum = 1
Me.Text2.Text = PageNum
Call ShowData(PageSize, PageNum)
End SubPrivate Sub cmd_Refur_Click()
If IsNumeric(Me.Text1.Text) = False Then
MsgBox "必须输入数字!"
Exit Sub
End If
If IsNumeric(Me.Text2.Text) = False Then
MsgBox "必须输入数字!"
Exit Sub
End If
PageSize = Val(Trim(Me.Text1.Text))
PageNum = Val(Trim(Me.Text2.Text))
Call ShowData(PageSize, PageNum)
End SubPrivate Sub Form_Load()
With Me
.Text1.Text = ""
.Text2.Text = ""
With .Label1
.Caption = ""
.ForeColor = vbBlue
End With
.Label2.Caption = ""
.Text1.Text = "5"
.Text2.Text = "1"
With .ListView1
With .ColumnHeaders
.Add , , "ID"
.Add , , "Userid"
.Add , , "UserName"
End With
End With
End With
Call iniDB
PageSize = Val(Trim(Me.Text1.Text))
PageNum = Val(Trim(Me.Text2.Text))
Call ShowData(PageSize, PageNum)
End SubPrivate Sub Form_Unload(Cancel As Integer)
Call CloseDB
End Sub
----------------
Option Explicit
Public Conn As ADODB.Connection
Public Rs As ADODB.RecordsetPublic Function iniDB()
If Not Conn Is Nothing Then Set Conn = Nothing
Set Conn = New ADODB.Connection
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb"
Conn.Open
If Not Rs Is Nothing Then Set Rs = Nothing
Set Rs = New ADODB.Recordset
Rs.Open "Select * From Table1", Conn, adOpenKeyset, adLockOptimistic, adCmdText
frmMain.Label1.Caption = "共有记录:" & Rs.RecordCount & "条"
Debug.Print "iniDB"
End Function
Public Function ShowData(ByVal intPageSize As Integer, ByVal intCurPageNum As Integer)
Dim i As Integer
Dim CurListItem As ListItem
If intCurPageNum <= Rs.PageCount Then
If intCurPageNum = 0 Then Exit Function
If intCurPageNum = 1 Then
Rs.MoveFirst
Else
If Rs.AbsolutePage = adPosEOF Then
Rs.Move intPageSize * (intCurPageNum - Rs.PageCount) ' + 1
Else
Rs.Move intPageSize * (intCurPageNum - Rs.AbsolutePage) ' + 1
End If End If
Rs.PageSize = intPageSize
frmMain.ListView1.ListItems.Clear
While Rs.AbsolutePage = intCurPageNum
With frmMain
With .ListView1
With .ListItems
Set CurListItem = .Add(, , Rs("id").Value)
With CurListItem
.SubItems(1) = Rs("Userid").Value
.SubItems(2) = Rs("UserName").Value
End With
End With
End With
End With
Rs.MoveNext
Wend
frmMain.Label2.Caption = intCurPageNum & "/" & Rs.PageCount
frmMain.Label2.ForeColor = vbRed
Else
MsgBox "已经超过总页数的大小!"
End If
Rs.MoveFirst
End Function
Public Function CloseDB()
If Rs.State <> 0 Then Rs.Close
Set Rs = Nothing
If Conn.State <> 0 Then Conn.Close
Set Conn = Nothing
Debug.Print "CloseDB"
End Function