设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3531|回复: 0
打印 上一主题 下一主题

access报表 奇数24行,偶数32行,强制分行  在线等

[复制链接]
跳转到指定楼层
1#
发表于 2009-8-23 20:31:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做了个数据库,奇数页上半部分有一些别的数据,所以只能放下24行数据,偶数页就是完全的表格样式,可以放下32行数据,请问怎么设置?
就这样奇数页和偶数页都固定行数,循环使用。
不强制分页,预览的结果正常,但打印的结果不同,会出现错位,打印机不同,效果也是一样。

Option Compare Database
Dim sum1 As Currency
Dim sum11 As Currency
Dim sum111 As Currency
Dim sum2 As Currency
Dim lngA As Long
Dim row As Long
Dim RowsInPage As Integer

Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)



'    RowsInPage = 25
'    row = row + 1
'    If row >= RowsInPage Then
'        Me.PageBreak18.Visible = True
'        row = -1
'    Else
'        Me.PageBreak18.Visible = False
'        row = 7
'    End If
End Sub
Private Sub 主体_Print(Cancel As Integer, PrintCount As Integer)
'    sum1 = sum1 + Me.金额.Value
'    sum11 = sum11 + Me.税额.Value
'    sum111 = sum111 + Me.合计.Value
      Dim lngRows As Long   '设置第一页行数用
    Dim lngRows2 As Long   '设置第二页行数用
    Dim lngRows3 As Long   '设置第、二页总行数用
    Dim intAllRows As Integer      'intAllRows  定义为包括空行,完整的行数。
    Dim objCtl As Control
   
   
    lngA = lngA + 1
    lngRows = 24           '设置第一页行数为24
    ingrows3 = 56
   
    If intAllRows = 0 Then
        If txtTotGrp Mod lngRows = 0 Then
            intAllRows = txtTotGrp
        Else
            intAllRows = (Fix(txtTotGrp / lngRows) + 1) * lngRows
        End If
    End If
    Debug.Print intAllRows
   
    '====================================================================
    '1
    '2-4 设备三个变量
    '5   设置 总行数 为24行
    '
    '当 intAllRows 为0时  这时没有值,所有为0
    '执行 判断   数据表中的行 与 ingRows 求余=0
    '       则 包含空行的总行数=数据表中的行
    '    否则
    '       包含空行的总行数=取 数据表中的行/ingRows的整数+1再*原本设置的行数
    '
    '
    '====================================================================
   
   
   
   
    Debug.Print intAllRows
   
    If lngA <= txtTotGrp Then
        For Each objCtl In Me.Section(0).Controls
            If objCtl.ControlType = acTextBox Then
            With objCtl
                .Visible = True
            End With
            End If
        Next objCtl
    Else
        If lngA = intAllRows + 1 Then lngA = 1
        For Each objCtl In Me.Section(0).Controls
            If objCtl.ControlType = acTextBox Then
            With objCtl
                .Visible = False
            End With
            End If
        Next objCtl
       '设置第一条记录要显示出来
        If lngA = 1 Then
            For Each objCtl In Me.Section(0).Controls
                If objCtl.ControlType = acTextBox Then
                With objCtl
                    .Visible = True
               End With
               End If
            Next objCtl
        End If
    End If
   
    '以下设定是否进入下一节
    If txtTotGrp < intAllRows Then
        If lngA < txtTotGrp Then
            Me.NextRecord = True
        ElseIf (lngA >= txtTotGrp And lngA < intAllRows) Then
            Me.NextRecord = False
        Else
            Me.NextRecord = True
        End If
    Else
        Me.NextRecord = True
    End If
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 10:59 , Processed in 0.114609 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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