新建类模块PageHelper


Option ExplicitDim rs As ADODB.Recordset
Dim rsds As ADODB.Recordset
Dim rsPage As Long  '当前处于第几页
Dim labelName As String'分页查询Sub queryPageFromRS(r As ADODB.Recordset, lbName As String)rsPage = 1labelName = lbNameSet rs = rCall addrows(rsPage) '调用子过程显示第一页记录End Sub'分页查询Sub queryPage(sql As String, lbName As String)rsPage = 1labelName = lbNameDim cba As New DBhelperSet rs = cba.query(sql)Call addrows(rsPage) '调用子过程显示第一页记录End SubPrivate Sub clearContents()Range("A4:AA18").clearContentsEnd Sub
Private Sub addrows(mypage As Long)On Error Resume NextDim i As Long, j As LongDim num As Long, endrow As Long  '记数'创建局部recorset对象rsds,保存rs 记录集中当前页的数据Set rsds = New ADODB.RecordsetFor i = 0 To rs.fields.Count - 1'append追加的意思,字段名称,字段类型,字段大小rsds.fields.Append rs.fields(i).Name, rs.fields(i).Type, rs.fields(i).DefinedSizeNext'打开局部recorset 对象rsdsrsds.Openrs.PageSize = 15 '重置rs 每页显示的记录条数(pagesize 表示记录集的每页的记录条数)rs.AbsolutePage = mypage '重置rs的当前记录页(跳到这页的第一条记录)'当rs 的当前记录页保存到rsds 之中For i = 1 To CLng(rs.PageSize)If rs.EOF Then Exit Forrsds.AddNew '添加一条记录For j = 0 To rs.fields.Count - 1rsds.fields(j).value = rs.fields(j).valueNext jrs.MoveNextNext irsds.MoveFirst '定位到第一条记录clearContents'添加记录i的类型在32位系统自动为integer或long,在64位自动为longlong,数据转换,不然会编译错误类型不匹配For i = 4 To CLng(rsds.RecordCount) + 3num = num + 1Cells(i, 1) = IIf(mypage > 1, num + rs.PageSize * (mypage - 1), num)Cells(i, rsds.fields.Count + 1) = CStr(rsds.fields(0))For j = 1 To rsds.fields.Count - 1Cells(i, j + 1) = rsds.fields(j)If rsds.fields(j).Type = adDate ThenCells(i, j + 1).NumberFormatLocal = "YYYY-MM-DD"End IfNext jrsds.MoveNextNext i' ActiveSheet.OLEObjects(labelName).Object.caption = "第 " & mypage & "/" & rs.PageCount & " 页,共" & rs.RecordCount & "条记录"
ActiveSheet.Shapes(labelName).TextFrame.Characters.Text = "第 " & mypage & "/" & rs.PageCount & " 页,共" & rs.RecordCount & "条记录"'  plabelText = "第 " & mypage & "/" & rs.PageCount & " 页,共" & rs.RecordCount & "条记录"' lb = ActiveSheet.OLEObjects(labelName).Object'endrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "B").End(xlUp).Row
'If endrow > 3 ThenWith Range("A4" & ":AA18").Borders.LineStyle = xlContinuous.Weight = xlThin.ColorIndex = 37End With
'End IfEnd Sub'切换到第一页Sub dyy_Click()rsPage = 1Call addrows(rsPage)End Sub
'切换到上一页Sub syy_Click()If rsPage > 1 And CLng(rs.PageCount) > 0 ThenrsPage = rsPage - 1Call addrows(rsPage)End IfEnd Sub'切换到下一页Sub xyy_Click()If rsPage <> CLng(rs.PageCount) And CLng(rs.PageCount) > 0 ThenrsPage = rsPage + 1Call addrows(rsPage)End IfEnd Sub
'切换到最末页Sub zmy_Click()'64位longlong类型 转换32位为longrsPage = CLng(rs.PageCount)Call addrows(rsPage)End SubPrivate Sub Class_Terminate()
Set rs = Nothing
Set rsds = Nothing
End Sub

Excel +VBA +ADO+Access数据库分页显示相关推荐

  1. vba ado 执行多条mysql 语句,Excel VBA+ADO+SQL入门教程003:SQL查询中字段技巧的总结...

    原标题:Excel VBA+ADO+SQL入门教程003:SQL查询中字段技巧的总结 本章概要: 1,几个概念 1.1, 数据库和Excel工作簿 1.2,数据表和Excel工作表 1.3,记录.字段 ...

  2. vba读取服务器accsess文件,vba 服务器 access数据库

    vba 服务器 access数据库 内容精选 换一换 创建外部服务器,用于定义OBS服务器的信息,供外表调用.创建外部服务器的详细语法,请参见CREATE SERVER.如果您将使用普通用户在自定义数 ...

  3. VBA 连接Access数据库和Excle

    VBA 连接数据库步骤: 1.创建连接对象 2.打开连接 3.执行SQL 4.关闭连接 5.释放连接对象 前提:在[工具]>[引用]ADO库 Sub conDatabase()Dim con A ...

  4. Excel VBA 链接 Oracle数据库

    标题 前言 准备 第一步 远程数据库的准备 第二步 本地免安装客户端下载 1.下载基本包 1.1 包下载地址 1.2 网盘下载地址 2.配置oracle 网络文件 2.1tnsnames.ora 文件 ...

  5. access数据库导入oracle数据库,将excel表格导入access数据库再导入oracle数据库方法-如何将ACCESS数据库的文件导入到ORACLE中?...

    怎样将excel中的数据导入到oracle数据库中 敢问楼主,表A存在几列,表B存在几列,表C存在几列 常规方法(表中列和excel中列一致) PLSQL 中 : select * from A up ...

  6. ASP excel导出/导入Access数据库(代码+实例下载)

    Excel导出函数 <% Sub   ExportToExcel Response.ContentType   =   "application/vnd.ms-Excel"  ...

  7. Android实现将Excel文件导入sqllite数据库并显示到界面

    我们在做Android时通常使用安卓系统自带的sqllite数据库,然而sqllite数据库不像Access.MYSQL等其他数据库,可以直接将数据大量的复制粘贴.我们下载的SQLite Expert ...

  8. vba 连接access数据库 方法二

    Sub 连接数据库() '第一步,引用ADO 工具,工具->引用->microsoft ActiveX Data Objects 6.1 Library '第二步,创建连接对象 '1 .声 ...

  9. VBA 连接ACCESS数据库

    在外部进行变量声明 Public connectionString As String '连接数据库语句 Public SQL As String Public con As ADODB.Connec ...

最新文章

  1. Factorized TDNN(因子分解TDNN,TDNN-F)
  2. 重磅 | 神策数据微信生态数字化运营解决方案上线!
  3. 高并发服务遇 redis 瓶颈引发的事故
  4. Taro+react开发(53) Taro提示操作
  5. java手机象棋软件下载,Java手机网络版象棋游戏附源码JAVA游戏源码下载
  6. python定义只有一个元素的元组
  7. java移动元素_如何通过箭头键连续/平滑地移动元素?
  8. Python 数据分析实战,揭秘国内顶尖医院分布现状!
  9. 20145203盖泽双《网络对抗技术》后门原理与实践
  10. 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑
  11. 重装的电脑360打补丁都是智能忽略
  12. 计算机ppt音乐,PPT制作音乐的步骤
  13. c语言1117查找数组元素,路雪军 Carl
  14. C/C++学习:小游戏的制作
  15. JS格式化中国标准时间
  16. PFC离散元与FLAC3D数值仿真核心技术与应用” 线上培训
  17. hdu 5467 Clarke and hunger games (lct)
  18. SQL零基础入门学习(十一)
  19. Python 正则表达式 match、findall、search
  20. 属于你的舞台——安卓优化大师UI设计

热门文章

  1. 【牛客】链表的回文结构
  2. Kotlin中的面向对象(二)
  3. 还在使用Postman吗?out了兄弟,快来解锁Apifox这款国产化API工具吧
  4. matlab中scr,基于matlab生成的scr文件,实现autocad曲线绘制,代码问题
  5. 报告:ICO项目2019年第一季度融资总额仅1.18亿美金,相较于2018年同比下降逾58倍...
  6. Java程序界面设计
  7. Python:用【Win32】模块,结合Word通配符替换,将Word文档表格的部分内容替换为加粗
  8. 分享前端获取微信之类图标的网站
  9. 手机LBS位置应用服务盘点
  10. android span 下划线,Android TextView实现部分文字(超链接/Span)点击事件、变色、去除下划线...