设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

1234下一页
返回列表 发新帖
查看: 13275|回复: 32

[报表] 跨页多联报表例子

[复制链接]
发表于 2011-7-21 21:03:29 | 显示全部楼层 |阅读模式
本帖最后由 咱家是猫 于 2011-8-11 16:41 编辑

记得这是我在Access擂台区发起的一个竞赛,记得事后一直未分享MDB,现在发上来共享之.


  1. Option Compare Database
  2. Option Explicit
  3. Private LngA As Long, LngB As Long
  4. Private lngRows As Long
  5. 'BStr常量字符串为此报表右则需要标注的信息,此字符串长度需参照固定行数
  6. Private Const BStr = "白联:财务 红联:客户 黄联:留底"
  7. Private myASum As Double '本页合计
  8. Private myBSum As Double '总计

  9. Private Sub 页面页眉_Print(Cancel As Integer, PrintCount As Integer)

  10. LngB = 0: myASum = 0
  11. If Me.Pages <> 1 Then
  12. Me.出库单 = Me.出库单号 & "-" & Me.Page
  13. Else
  14. Me.出库单 = Me.出库单号
  15. End If

  16. End Sub

  17. Private Sub 主体_Print(Cancel As Integer, PrintCount As Integer)

  18. Dim intAllRows As Integer
  19. Dim objCtl As Control

  20. LngA = LngA + 1: LngB = LngB + 1
  21. Me.BLabel.Caption = GetBL(LngB)

  22. lngRows = 20
  23. If intAllRows = 0 Then
  24. If txtTotGrp Mod lngRows = 0 Then
  25. intAllRows = txtTotGrp
  26. Else
  27. intAllRows = (Fix(txtTotGrp / lngRows) + 1) * lngRows
  28. End If
  29. End If
  30. If LngA <= txtTotGrp Then
  31. For Each objCtl In Me.Section(0).Controls
  32. If objCtl.ControlType = acTextBox Then
  33. With objCtl
  34. .Visible = True
  35. End With
  36. End If
  37. Next objCtl
  38. myASum = myASum + Me.金额 '累计金额(本页小计)
  39. myBSum = myBSum + Me.金额 '累计金额(总计)
  40. Else
  41. If LngA = intAllRows + 1 Then LngA = 1
  42. For Each objCtl In Me.Section(0).Controls
  43. If objCtl.ControlType = acTextBox Then
  44. With objCtl
  45. .Visible = False
  46. End With
  47. End If
  48. Next objCtl
  49. End If
  50. If txtTotGrp < intAllRows Then
  51. If LngA < txtTotGrp Then
  52. Me.NextRecord = True
  53. ElseIf (LngA >= txtTotGrp And LngA < intAllRows) Then
  54. Me.NextRecord = False
  55. Else
  56. Me.NextRecord = True
  57. End If
  58. Else
  59. Me.NextRecord = True
  60. End If

  61. End Sub

  62. Private Sub 页面页脚_Format(Cancel As Integer, FormatCount As Integer)

  63. Me.总计标签.Visible = (Me.Page = Me.MyPages)
  64. Me.大写总计.Visible = (Me.Page = Me.MyPages)
  65. Me.小写总计.Visible = (Me.Page = Me.MyPages)
  66. Me.MyPageTipText.Visible = (Me.Page < Me.MyPages)
  67. Me.小写小计 = "¥" & myASum
  68. Me.大写小计 = "(大写)" & UCaseCur(myASum, 1)
  69. If Me.Page = Me.MyPages Then
  70. Me.小写总计 = "¥" & myBSum
  71. Me.大写总计 = "(大写)" & UCaseCur(myBSum, 1)
  72. End If

  73. End Sub

  74. Function GetBL(I As Long) As String
  75. GetBL = Mid(BStr, I, 1)
  76. End Function

复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2011-7-21 21:22:28 | 显示全部楼层
哈哈
发表于 2011-7-21 21:45:49 | 显示全部楼层
发表于 2011-7-21 22:18:15 | 显示全部楼层
谢谢分享!!
发表于 2011-7-21 22:35:24 | 显示全部楼层
学习学习~
发表于 2011-7-22 07:14:10 | 显示全部楼层
谢谢分享!!
发表于 2011-7-22 07:25:00 | 显示全部楼层
看看一下
发表于 2011-7-22 07:29:56 | 显示全部楼层
谢谢分享!!

点击这里给我发消息

发表于 2011-7-22 08:08:12 | 显示全部楼层
猫哥这几天大发慈悲,一口气发上这么多实例。
发表于 2011-7-22 08:16:21 | 显示全部楼层
收藏了
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-18 08:33 , Processed in 0.104619 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表