我正在使用Access 2003,我有一个表单,可以收集报告的一些过滤条件。输入条件后,用户单击并单击“确定”按钮,然后使用以下VBA启动报告。
DoCmd.OpenReport "ReportName", acViewPreview
打开报告后,我发出以下命令来关闭收集过滤条件的表单......
Me.Close
表格会关闭但是我希望在前台保持打开的报告是隐藏的。知道为什么会这样吗?
答案 0 :(得分:1)
当所有其他方法都失败,表单和报告在所需的时间到达前面时,您可以使用DoCmd.SelectObject显式地执行此操作:
DoCmd.OpenReport "rptMyReport", acViewPreview
DoCmd.SelectObject acReport, "rptMyReport"
DoCmd.Close acForm, Me.Name
如果这不起作用,则会涉及其他内容,例如使用acDialog开关打开的表单或报表,或者将Modal或Popup属性设置为True的表单/报表。
或者,可能会有一个计时器在某个地方运行,导致某些事情发生并且正在抓住焦点。
答案 1 :(得分:1)
尝试将报告属性模式设置为是(在其他属性中)。
答案 2 :(得分:0)
关闭表单,然后打开报表工作?我猜它与焦点在物体之间来回移动有关。
修改
您的代码应如下所示:
Private Sub Command0_Click()
'your code here
DoCmd.Close acForm, Me.Name
DoCmd.OpenReport "Report1", acViewPreview
End Sub
此外,没有其他人指出的本地关闭功能。
答案 3 :(得分:0)
我挣扎了几天。您似乎需要关闭当前窗口,然后在“打印预览”中打开报告。
我在报告中嵌入的数据透视图上有一个按钮。 (Access2010) 当我试图打印报告时 - 数据透视表上的任何过滤都没有转移到“DoCmd.Printout”命令。
有人建议我使用打开预览窗口,但它从未获得焦点。我不得不点击屏幕然后再回到打印预览窗口。下面的代码似乎纠正了这一点。
Private Sub Command1_Click()
DoCmd.Save
DoCmd.Close
DoCmd.OpenReport "R-MyReport", acViewPreview