vb的分页显示问题

「已注销」 2011-07-14 03:44:33
用vb编写个管理软件数据库是excel的用adodc连接,并用DataGrid显示,但是数据库的内容比较多想分页显示,有大大说用top来可是top只能显示前n个,该怎么改,另外页数怎么获得并显示出来啊(就是比如100条数据10条一个,在列表下方出现1 2 3 4 5 6 7 8 9 10),这是数据库连接的东东。谢谢帮忙了
Private Sub Command1_Click()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\soft\vb\excel\nw.xls;Mode=ReadWrite;Extended Properties=excel 8.0;Persist Security Info=False"
Adodc1.RecordSource = "select top 10 * from [nw1$] "
Adodc1.Refresh
'DataGrid1.Refresh

End Sub
...全文
270 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
有问题找BAIDU 2011-07-21
  • 打赏
  • 举报
回复
这是以前找到的一个范本,把数据库改一下就能用
有问题找BAIDU 2011-07-21
  • 打赏
  • 举报
回复
Option Explicit

Dim conn As ADODB.Connection

Dim lCurrentPage As Long



Private Sub cmdNext_Click()

lCurrentPage = lCurrentPage + 1

Call Loadcontrol(lCurrentPage)

End Sub



Private Sub cmdPrevious_Click()

If lCurrentPage > 1 Then

lCurrentPage = lCurrentPage - 1

Call Loadcontrol(lCurrentPage)

End If

End Sub



Private Sub Form_Load()



Set conn = New ADODB.Connection

conn.CursorLocation = adUseClient

conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test2000.mdb;"



lCurrentPage = 1

Call Loadcontrol(lCurrentPage)



End Sub

Private Sub Loadcontrol(lPage As Long)

Dim adoPrimaryRS As ADODB.Recordset

Dim lPageCount As Long

Dim nPageSize As Integer

Dim lCount As Long



'每页显示的纪录

nPageSize = 10

Set adoPrimaryRS = New ADODB.Recordset

adoPrimaryRS.Open "select * from numbers", conn, adOpenStatic, adLockOptimistic



adoPrimaryRS.PageSize = nPageSize

'页数

lPageCount = adoPrimaryRS.PageCount

If lCurrentPage > lPageCount Then

lCurrentPage = lPageCount

End If



adoPrimaryRS.AbsolutePage = lCurrentPage

'定义另一个记录集

Dim objrs As New ADODB.Recordset

'添加字段名称

For lCount = 0 To adoPrimaryRS.Fields.Count - 1

objrs.Fields.Append adoPrimaryRS.Fields(lCount).Name, adVarChar, adoPrimaryRS.Fields(lCount).DefinedSize

Next

'打开记录集

objrs.Open

'将指定记录数循环添加到objrs中

For lCount = 1 To nPageSize
if not adoPrimaryRS.EOf then
objrs.AddNew

objrs!id = adoPrimaryRS!id

objrs!anumber = adoPrimaryRS!anumber

adoPrimaryRS.MoveNext
end if
Next

'绑定

Set DataGrid1.DataSource = objrs



'显示页数

txtPage = lPage & "/" & adoPrimaryRS.PageCount

End Sub



Private Sub Form_Unload(Cancel As Integer)

If Not conn Is Nothing Then

conn.Close

End If

Set conn = Nothing

End Sub

「已注销」 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jiluoxingren 的回复:]
不对啊,不懂你什么意思。DataGrid是一个表格控件,所有数据都可以加进去,如果太长会有滚动条,不会说显示不出来的啊。
[/Quote]

会有滚动条,但是数据太多 滚动条不方便,想分页显示
几罗星人 2011-07-14
  • 打赏
  • 举报
回复
不对啊,不懂你什么意思。DataGrid是一个表格控件,所有数据都可以加进去,如果太长会有滚动条,不会说显示不出来的啊。
咸清 2011-07-14
  • 打赏
  • 举报
回复
当然还有专门的三方控件
咸清 2011-07-14
  • 打赏
  • 举报
回复
那就不要绑定数据库了,把数据检索出来
然后分段赋值
下边放一排按钮之类的东西

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧