Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • access XP 里面怎..
  • 报表中如何屏蔽零值?
  • Access报表补空行代码
  • 用Access2007解决..
  • 获取打印机纸张信息
  • access输出资料到wo..

最新文章

  • Access中窗体或者报表..
  • Access报表文本框按字..
  • Access报表打印设置
  • Access报表补空行代码
  • 懒人有懒计——浅谈自动报表
  • Access使用excel..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > 报表打印
报表打印

如何在报表中使用自定义尺寸的纸张

将下列代码粘贴到一个新模块中,并调用CheckCustomPage过程检查指定报表的自定义纸张。

Type str_DEVMODE
    RGB As String * 94
End Type

Type type_DEVMODE
    strDeviceName As String * 16
    intSpecVersion As Integer
    intDriverVersion As Integer
    intSize As Integer
    intDriverExtra As Integer
    lngFields As Long
    intOrientation As Integer
    intPaperSize As Integer
    intPaperLength As Integer
    intPaperWidth As Integer
    intScale As Integer
    intCopies As Integer
    intDefaultSource As Integer
    intPrintQuality As Integer
    intColor As Integer

intDuplex As Integer
    intResolution As Integer
    intTTOption As Integer
    intCollate As Integer
    strFormName As String * 16
    lngPad As Long
    lngBits As Long
    lngPW As Long
    lngPH As Long
    lngDFI As Long
    lngDFr As Long
End Type

Public Sub CheckCustomPage(ByVal rptName As String)
' 用    途:检查报表的自定义纸张
' 调用方法:Call CheckCustomPage(rptName)
' 参数说明:rptName: 为检查的报表名称
' 调用举例:设有名为"MyReport"的报表,
'           Call CheckCustomPage("MyReport")
'           当该报表使用的是自定义纸张时,则显示自定义纸张的大小,
'           并询问是否更改纸张的大小并进行设置;
'           当该报表使用的是标准纸张时,则询问是否使用自定义纸张,
'           如果选择“是”,则要求输入纸张的大小并进行设置。

    Dim DevString As str_DEVMODE
    Dim DM As type_DEVMODE
    Dim strDevModeExtra As String
    Dim rpt As Report
    Dim intResponse As Integer
    
    ' 在设计视图下打开报表
    DoCmd.OpenReport rptName, acDesign

    Set rpt = Reports(rptName)
    If Not IsNull(rpt.PrtDevMode) Then
        strDevModeExtra = rpt.PrtDevMode
        
        ' 获取当前的 DEVMODE 结构
        DevString.RGB = strDevModeExtra
        LSet DM = DevString
        
        If DM.intPaperSize = 256 Then
            ' 显示用户自定义纸张的尺寸
            intResponse = MsgBox("当前的自定义纸张为(mm):" & _
                          DM.intPaperWidth / 10 & " (宽) X " & _
                          DM.intPaperLength / 10 & " (长)。 你想改变吗?", _
                          vbYesNo + vbQuestion)
        Else
            ' 非自定义纸张
            intResponse = MsgBox("报表没有使用自定义纸张。 " & _
                          "你想使用自定义纸张吗?", vbYesNo + vbQuestion)
        End If
        If intResponse = 6 Then
            ' 用户要改变纸张设置,初始化 DM 的各个域
            DM.lngFields = DM.lngFields Or DM.intPaperSize Or DM.intPaperLength _
                Or DM.intPaperWidth
            ' 设置为自定义纸张
            DM.intPaperSize = 256

            ' 提示输入长度和宽度
            DM.intPaperLength = InputBox("请输入纸张的长度(mm):") * 10
            DM.intPaperWidth = InputBox("请输入纸张的宽度(mm):") * 10
            
            ' 更新属性值
            LSet DevString = DM
            Mid(strDevModeExtra, 1, 94) = DevString.RGB
            rpt.PrtDevMode = strDevModeExtra
        End If
    End If
    
    ' 关闭报表并保存
    DoCmd.Close acReport, rptName, acSaveYes
    ' 预览报表
    DoCmd.OpenReport rptName, acViewPreview
    
End Sub

点击此处,下载示例

点击此处,下载相关XP下的示例

发布人:朱亦文-access faq  
分享到:
点击次数:  更新时间:2005-01-29 10:47:17  【打印此页】  【关闭】
上一条:怎样打开外部数据库中的报表  下一条:在子窗体中预览报表



相关文章

  • • Access中窗体或者报表页眉和页面页眉的区别,窗体页脚和页面页脚的区别
  • • Access报表文本框按字数同步缩放
  • • Access报表打印设置
  • • Access报表补空行代码
  • • 懒人有懒计——浅谈自动报表
  • • Access使用excel输出复杂报表
  • • 报表每页打印到一定行数自动分页
  • • 解决Access在页面设置中设置边距无法保存的问题

热门文章

  • [2015-01-27] 报表每页打印到一定行数自动分页access数据库
  • [2004-12-31] 高手请指教!access数据库
  • [2005-04-08] 在Access 2002中打印报表的关系图access数据库
  • [2009-06-12] 报表奇偶分页打印access数据库
  • [2003-12-06] 如何在报表没有数据时,不打开该报表?access数据库
  • [2003-12-06] 创建完美报表access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn