Ms access 通过VBA打印多份副本时,MS Access报告将打开导航窗格

Ms access 通过VBA打印多份副本时,MS Access报告将打开导航窗格,ms-access,vba,Ms Access,Vba,我有我用来打印标签的报告,一切正常,只是当报告打印时,导航窗格会打开。我已将数据库选项设置为不显示导航窗格,并且除此特定报告外,它仍处于隐藏状态。以下是我用于打印报告的VBA: Dim intCopies as integer intCopies = Me.txtCopies DoCmd.SelectObject acReport, "rptShippingLabelTmo", True DoCmd.PrintOut , , , , intCopies 该报告设置为仅打印到特定打印机,我需要它

我有我用来打印标签的报告,一切正常,只是当报告打印时,导航窗格会打开。我已将数据库选项设置为不显示导航窗格,并且除此特定报告外,它仍处于隐藏状态。以下是我用于打印报告的VBA:

Dim intCopies as integer
intCopies = Me.txtCopies
DoCmd.SelectObject acReport, "rptShippingLabelTmo", True
DoCmd.PrintOut , , , , intCopies
该报告设置为仅打印到特定打印机,我需要它打印多份副本,而无需使用任何类型的对话框。 如何在不打开导航窗格的情况下打印报告?

第三个参数InNavigationPane指示是否应在数据库窗口中选择对象(Access versions=2007)。使用
False
告诉Access不要在导航窗格中选择该报告,然后它不应该显示导航窗格

DoCmd.SelectObject acReport,“rptShippingLabelTmo”,False
但是,如果报告尚未打开,请使用
OpenReport
而不是
SelectObject
,然后
关闭它

DoCmd.OpenReport“rptShippingLabelTmo”,acViewPreview
'DoCmd.PrintOut,,intCopies
DoCmd.PrintOut Copies:=intCopies
文档关闭一个报告,“rptShippingLabelTmo”
第三个参数InNavigationPane指示是否应在数据库窗口中选择对象(Access versions=2007)。使用
False
告诉Access不要在导航窗格中选择该报告,然后它不应该显示导航窗格

DoCmd.SelectObject acReport,“rptShippingLabelTmo”,False
但是,如果报告尚未打开,请使用
OpenReport
而不是
SelectObject
,然后
关闭它

DoCmd.OpenReport“rptShippingLabelTmo”,acViewPreview
'DoCmd.PrintOut,,intCopies
DoCmd.PrintOut Copies:=intCopies
文档关闭一个报告,“rptShippingLabelTmo”

每次都可以隐藏窗格:

DoCmd.SelectObject acReport, "rptShippingLabelTmo", True
DoCmd.RunCommand acCmdWindowHide
DoCmd.PrintOut , , , , intCopies

每次都可以隐藏窗格:

DoCmd.SelectObject acReport, "rptShippingLabelTmo", True
DoCmd.RunCommand acCmdWindowHide
DoCmd.PrintOut , , , , intCopies

谢谢,我应该提到我曾尝试使用False,但后来我收到一个错误,说对象未打开。那么你能用它代替
SelectObject
DoCmd.OpenReport“rptShippingLabelTmo”,acViewPreview
虽然我不得不添加一个DoCmd.Close报告“rptShippingLabelCommercial”以使报告自动关闭,但这确实起到了作用。如果您发布作为答案,我会将其标记为已接受的答案谢谢,我应该提到我尝试使用False,但随后我收到一个错误,表示对象未打开。那么您是否可以使用此选项而不是
SelectObject
DoCmd.OpenReport“rptShippingLabelTmo”,acViewPreview
虽然我不得不添加一个DoCmd.Close报告“rptShippingLabelCommercial”以使报告自动关闭,但这确实起到了作用。如果你作为答案发布,我会将其标记为已接受的答案,这会阻止导航窗格打开,但现在我有一个新问题。我得到的不是打印报告,而是屏幕截图的打印输出。我以前尝试过,但这也关闭了我打开的表单。我的用户会让表单保持打开状态,整天都在打印表单上的标签,所以这不是一个理想的结果。HansUp建议使用DoCmd.OpenReport的解决方案在我在PrintOut命令后添加DoCmd.Close“rptShippingLabelTmo”后实际上可以工作。用户将不得不忍受报表的快速打开和关闭。我想您可以研究最小化报表。但是,对我来说,这个报告的闪开并不是什么大问题。这是Windows中非常常见的行为,也许是令人放心的。这确实会阻止导航窗格打开,但现在我遇到了一个新问题。我得到的不是打印报告,而是屏幕截图的打印输出。我以前尝试过,但这也关闭了我打开的表单。我的用户会让表单保持打开状态,整天都在打印表单上的标签,所以这不是一个理想的结果。HansUp建议使用DoCmd.OpenReport的解决方案在我在PrintOut命令后添加DoCmd.Close“rptShippingLabelTmo”后实际上可以工作。用户将不得不忍受报表的快速打开和关闭。我想您可以研究最小化报表。但是,对我来说,这个报告的闪开并不是什么大问题。这在Windows中是很常见的行为,也许可以让人放心。