比如,VB+SQL+ADO,一个窗体只显示5条记录,如果有12条记录,怎么样实现向上向下翻页查看其他的记录,最好能贴个实例
解决方案 »
- 如何把LISTVIEW控件里显示的数据一模一样在MSFLEXGRID里显示?
- Combo_Change
- 变量定义????????????
- DataGird内数据编辑问题!
- vb如果一个文本文件有200条记录,每条用回车换行符区别,如何提取文本文件中的后50条记录,就象数据库中提取后50条那样?!
- MDI中在picturebox 控件,显示窗体???
- 怎么把查找中的内容用datagrid显示出来!小弟在线!!
- 用那个函数可以读取树组个数?
- VB字符串长度出鬼了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 如何获取ole word中数据?
- 我想了解一下什么是水晶报表,要用它应具备哪些条件?
- 请教表格设置问题?
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
'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
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加入了错误判断,更多的错误码判断请自己试着写一下。
有没有向上翻页的代码To: cnapc(明月照大江)我在一个窗体上放5个label,就是把12条记录逐一显示在label上面,可是用你的方法,我怎么也实现不了向上翻页的功能,郁闷