【问题标题】: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 之上调用报表和表单。

报告按预期打印:

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

表格打印所有记录:

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

【问题讨论】:

  • 打印预览中的2有区别吗?
  • 不,报告在打印预览中显示相同。

标签: ms-access printing vba report


【解决方案1】:

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

你可以避免这种情况

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

【讨论】:

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