访问报告 - 打印预览不会打印

Posted

技术标签:

【中文标题】访问报告 - 打印预览不会打印【英文标题】:Access Report - Print Preview Won't Print 【发布时间】:2014-09-12 19:11:48 【问题描述】:

我有一个宏,可以在打印预览中打开报表,并显示当前记录。该报告从该打印预览按钮所在的同一表单中提取信息。

问题是,有时打印按钮会起作用并打印单个报告记录,而有时它会以表单格式打印每条记录。

这是链接到表单中按钮的代码:

Private Sub Print_Record_Click()
'Save and print record

On Error GoTo Err_Msg

CurrentDb.Execute "qryOrderQty", dbFailOnError
DoCmd.RunCommand acCmdSaveRecord

DoCmd.OpenReport "rptWorkOrder", acViewPreview, , "Prod_Num = " & Me!Prod_Num

Exit Sub

Err_Msg:
    MsgBox Err.Description

End Sub

不确定它是否有帮助,但我认为这里有一些情况会导致错误发生。我们将分别在 Report1 和 Form1 之上调用报表和表单。

报告按预期打印:

    用户在首页打开数据库 点击首页按钮打开Form1并输入信息 点击打印预览按钮,激活上面的宏 单击功能区中的打印按钮,Report1 打印单个记录

表格打印所有记录:

    用户在首页打开数据库 点击首页按钮打开Form2并输入信息 点击Form 2上的按钮打开Form1并输入信息 点击打印预览按钮,上面的激活宏 单击功能区中的打印按钮,Form1 打印所有记录

【问题讨论】:

打印预览中的2有区别吗? 不,报告在打印预览中显示相同。 【参考方案1】:

由于您写道所有记录都以表单格式打印,因此当您按下功能区上的打印按钮时,“Form1”似乎很明显具有焦点。

你可以避免这种情况

打开报表时关闭“Form1” 使用报表的右键菜单按下打印按钮 在“Form1”上创建一个单独的打印按钮,将报表发送到打印机而不进行预览

【讨论】:

我在预览代码中添加了DoCmd.Close , "",但这会导致打印按钮变灰。从这里右键单击表单,甚至没有关闭代码也可以。您的第三个选项是否只是将打开报告模式从 acPrintPreview 更改为 acNormal?如果是这样,它将如何看待这一点并确保在打印之前专注于报告?打印预览打开后我可以输入代码以确保专注于报告吗? Reports!Report1.SetFocus 似乎不起作用,我猜是因为它仅作为预览打开? 在打印预览中搜索焦点问题给了我更多线索,但这些线索逐渐消失了:(1) 除非我犯了愚蠢的语法错误,否则.SetFocus 命令只会引发错误。 (2) 我试过DoCmd.SelectObject acReport, "Report1" 没有报错但是没有效果。

以上是关于访问报告 - 打印预览不会打印的主要内容,如果未能解决你的问题,请参考以下文章

如何将 ms 访问报告的详细信息部分分成两页进行打印预览和打印?

访问自定义表单打印的打印报告选项

在报告打印预览中或打印时,备注字段被截断

VC6 和 MFC 中的 HTML 打印和打印预览

无预览打印本地报告 - 超出流大小或GDI + C#中发生一般错误

在 MS-Access 中禁用除报告(打印预览)之外的功能区栏