在 Access 2013 中创建用于打印报表的 UI
Posted
技术标签:
【中文标题】在 Access 2013 中创建用于打印报表的 UI【英文标题】:Creating a UI to Print a Report in Access 2013 【发布时间】:2015-01-11 18:21:56 【问题描述】:我在 Access 2013 中有一个格式仔细的报告,我正在尝试创建一个 UI,该 UI 将在单击按钮时打印此报告。我会打开 C# WPF 或表单应用程序,或者可能包含此按钮的 html 页面。
有谁知道这是否可行,如果可行,代码是什么?
我的最终目标是让用户能够打印此报告,而无需直接访问数据库。我对其他语言/平台持开放态度。
【问题讨论】:
【参考方案1】:最终您仍需要安装 Access,最终您仍需启动 Access,最终您仍 100% 依赖 Access。
因此,要打印 Access 报告,您仍然需要启动 Access。完全不清楚为什么您无法在 Access 中构建所需的 UI,因为您仍然 100% 依赖 Access 来获取此报告。
因此,您将不得不自动化 Access 并依赖 Access。您可以使用任何支持 COM 对象自动化的系统或语言。
所以说windows脚本,你可以去:
Dim app As Object
Set app = CreateObject("access.application")
app.OpenCurrentDatabase ("path to database")
app.DoCmd.OpenReport ("ReprotName")
app.CloseCurrentDatabase
app.Quit
上面的代码同样适用于 vb.net。请注意,打开报告的“默认”会在不预览的情况下将其发送到打印机。
还请记住,由于您正在创建 Access 应用程序的实例,因此所有启动代码和表单都将启动并运行。如果此类启动代码和正在运行的启动表单需要任何用户交互,则上述方法将不起作用。由于上述“许多”问题,您可能最好创建一个应用程序,该应用程序将表链接到数据,并包含您所需的报告。因此,这种方法将避免运行所有现有的应用程序代码和启动表单。
因此,在任何情况下,您都必须启动应用程序并处理所有启动表单等。如上所述,出于您的目的,通常将报告复制到带有链接表的单独应用程序是有意义的。
还请记住,Access 运行时(相对于完整版)不支持也不允许使用 CreateObject - 您必须借助带有启动参数的 shell() 来启动 + 运行报告。
最后但并非最不重要的一点是,您可以从 Access UI 简单地将报告拖放到桌面上。结果是您桌面上的一个单击按钮将启动相关报告。
【讨论】:
以上是关于在 Access 2013 中创建用于打印报表的 UI的主要内容,如果未能解决你的问题,请参考以下文章
当数据在 SQL Server 中时,如何通过 ADO 在 Access 中创建报表?
无法使用 oracle 存储过程在水晶报表 2013 中创建报表