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开发编程

热门文章

  • 移除报表预览窗口的Min/..
  • 报表奇偶分页打印
  • ACCESS-VBA编程 ..
  • 用SQL语句简单实现Acc..
  • 如何控制每页打印的记录数?
  • 如何在报表没有数据时,不打..

最新文章

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

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

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

在Access中使用自动化打印报告

通过执行 DoCmd 对象的该 OpenReport 方法,可以从任何自动化客户端应用程序,如 Microsoft Visual Basic 或 Microsoft Visual Basic Environment (VBE) 来打印 Access 报表。 这使您以实现 Access 作为应用程序解决方案中报告的组件。 Microsoft 提供仅,用于说明的编程示例不附带任何明示或默示的保证。 这包括,但不限于适销性或针对特定用途的适用性的默示保证。 本文假定您熟悉所演示的编程语言和用于创建和调试过程的该工具。 Microsoft 支持工程师可以帮助解释某个特定的过程的功能,但是它们不会修改这些示例以提供额外的功能或构建过程以满足您的特殊需求。 警告 : 如果您按照此示例,则修改示例数据库 Northwind.mdb。 可以备份 Northwind.mdb 文件,并在数据库的副本上执行这些步骤。

打开 Microsoft Access。
创建新的空白数据库。
创建模块,然后声明部分中键入以下:
Option Explicit
' In other applications like Microsoft Visual Basic,
' you can include a reference to Microsoft Access to
' gain the use of Access constants. or, use the following
' constant values...
' Global Const acNormal = 0
' Global Const acDesign = 1
' Global Const acPreview = 2
' -----------------------------------------------------
' Application Quit options...
' saves all objects without displaying a dialog box:
' Global Const acSaveYes = 0
' displays a dialog box that asks whether you want to save any
' database objects that have been changed but not saved:
' Global Const acPrompt = 1
' quits Microsoft Access without saving any objects:
' Global Const acExit = 2
     
键入下面的过程:
Function OLEOpenReport(strDBName As String, _
                       strRptName As String, _
                       Optional ByVal intDisplay As Variant, _
                       Optional ByVal strFilter As Variant, _
                       Optional ByVal strWhere As Variant) As Boolean
   On Error GoTo OLEOpenReport_Err
   ' Create Automation object.
   Dim objAccess As Object
   Set objAccess = CreateObject("Access.Application")
   ' Open the supplied database.
   ' Optional parameter at the end of statement
   ' indicates exclusive mode if set to True...
   objAccess.OpenCurrentDatabase strDBName, False
   ' The OpenReport method uses the following arguments...
   ' Report Name - Name of the report object.
   ' View - Display in Print Preview or send to printer.
   '        acNormal - Print report
   '        acDesign - open report in design (n/a in runtime)
   '        acPreview - open in preview window
   ' Filter Name - Name of a saved filter query.
   ' Where Condition = valid SQL where condition.
   If IsMissing(intDisplay) Then intDisplay = acNormal
   If IsMissing(strFilter) Then strFilter = ""
   If IsMissing(strWhere) Then strWhere = ""
   objAccess.DoCmd.OpenReport strRptName, intDisplay, strFilter, _
      strWhere
   ' Close Microsoft Access session instance...
   objAccess.Quit acExit
   Set objAccess = Nothing
   OLEOpenReport = True
OLEOpenReport_End:
   Exit Function
OLEOpenReport_Err:
   MsgBox Error$(), vbInformation, "Automation"
   Resume OLEOpenReport_End
End Function

要测试此函数,在立即的窗口中键入下面一行,,然后按 ENTER 键:
?OLEOpenReport("c:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb", "Invoice", strWhere:="OrderId = 10251")
     
函数打开罗斯文数据库,打开发票报表,将记录集设置为 orderId # 10251,然后打印到打印机报表。
注意: 请确保提供您的系统上文件的相应路径。

在运行版本的 Access 只支持自动化 GetObject () 函数。


打开 Microsoft Access。
创建新的数据库。
创建模块,然后声明部分中键入以下:
Option Explicit
' In other applications like Microsoft Visual Basic,
' you can include a reference to Microsoft Access to
' gain the use of Microsoft Access constants. or, use the following
' constant values...
' Global Const acNormal = 0
' Global Const acDesign = 1
' Global Const acPreview = 2
' -----------------------------------------------------
' Application Quit options...
' saves all objects without displaying a dialog box:
' Global Const acSaveYes = 0
' displays a dialog box that asks whether you want to save any
' database objects that have been changed but not saved:
' Global Const acPrompt = 1
' quits Microsoft Access without saving any objects:
' Global Const acExit = 2
                                       

键入下面的过程:
Function OLEOpenReportRuntime(strDBName As String, _
strRptName As String, _
Optional ByVal intDisplay As Variant, _
Optional ByVal strFilter As Variant, _
Optional ByVal strWhere As Variant _
) As Boolean

On Error GoTo OLEOpenReportRuntime_Err

Dim x As Long
Dim objAccess As Object

' Open the run-time instance and database...
' ------------------------------------------
' The use of the Chr$(34) function supplies
' quotation marks around the database name which is
' required by Shell when the optional command
' line parameter contains spaces...

x = Shell("c:\myapp\Office\msaccess.exe " &_
Chr$(34) & strDBName & Chr$(34) & _
"/Runtime /Wrkgrp " & Chr$(34) & _
"c:\myapp\system.mdw" & Chr$(34))

Set objAccess = GetObject(strDBName)

' The OpenReport method uses the following arguments...
' Report Name - Name of the report object.
' View - Display in Print Preview or send to printer.
'        acNormal - Print report
'        acDesign - open report in design (n/a in runtime)
'        acPreview - open in preview window
' Filter Name - Name of a saved filter query.
' Where Condition = valid SQL where condition.

If IsMissing(intDisplay) Then intDisplay = acNormal
If IsMissing(strFilter) Then strFilter = ""
If IsMissing(strWhere) Then strWhere = ""
objAccess.DoCmd.OpenReport strRptName, intDisplay, strFilter, _
strWhere

' Close Microsoft Access session instance...
objAccess.Quit acExit

Set objAccess = Nothing
OLEOpenReportRuntime = True
OLEOpenReportRuntime_End:
Exit Function

OLEOpenReportRuntime_Err:
MsgBox Error$(), vbInformation, "Automation"
Resume OLEOpenReportRuntime_End
End Function
                                       

要测试此函数,在立即的窗口中键入下面一行,,然后按 ENTER 键:
?OLEOpenReportRuntime("c:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb", "Invoice", strWhere:="OrderId = 10251")
                                       

函数打开罗斯文数据库,打开发票报表,将记录集设置为 orderId # 10251,然后打印到打印机报表。

注意: 请确保提供您的系统上文件的相应路径。

发布人:佚名-access  
分享到:
点击次数:  更新时间:2009-08-15 08:36:41  【打印此页】  【关闭】
上一条:Access中通过程序变更宏安全设置的方法  下一条:在ASP中使用ACCESS的“存储过程”技术



相关文章

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

热门文章

  • [2005-04-08] 在Access 2002中打印报表的关系图access数据库
  • [2005-01-02] 如何使用代码控制报表的上下左右页边距?access数据库
  • [2009-02-03] 用Access2007解决支票打印的日期大写问题access数据库
  • [2008-11-05] ACCESS和EXECL结合的简单说明access数据库
  • [2008-11-28] 自由设置页码打印报表access数据库
  • [2009-09-17] Access通用报表打印设置access数据库

热门产品

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

Access交流网 版权所有 1999-2018 粤ICP备10043721号

QQ:18449932

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

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

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