我在MS Access报告中创建了一个报告,并编写了一些VBA代码来检索数据并以MS-Word格式显示报告。 但是在生成运行时报告时,报告首先显示或刷新报告设计视图几秒钟,然后生成报告。

我想找到一个解决方案,以避免在生成报告时闪现设计视图。是否可以在此MS-Access或VBA编码中使用。 ??

我发布了用于从访问表单代码调用访问报告的行。

DoCmd.OpenReport rst![Argument],acPreview

这将生成报告,但设计屏幕在执行时闪烁几秒钟。

并且访问报告中没有写入VBA代码。

实际运行是,我已在临时访问表中准备数据并从表中生成报告。

这里的问题是,在预览模式下启动报告时,报告的设计屏幕会显示几秒钟。从用户方面看起来很糟糕。

有帮助吗?

解决方案

如果您尝试此代码会发生什么:

  Dim strReport As Report        
  strReport = rst!Argument
  If SysCmd(acSysCmdGetObjectState, acReport, strReport) Then
     DoCmd.Close acReport, strReport
  End If
  DoCmd.OpenReport strReport, acPreview

该代码执行的操作是检查报告是否已在任何视图中打开,如果是,则将其关闭,然后打开它。这可以确保您在隐藏窗口的情况下不在设计视图中。

该代码还避免了任何可能与将记录集中的值传递给OpenReport命令相关的ByRef引用问题。

其他提示

您似乎在设计视图中打开报告以更改某些属性。有可能避免这种情况,但您需要发布打开报告的代码以确定。

如何将报告导出到MS-Word?代码是什么?

您是否尝试过使用简单报表(使用表数据源)而不是使用VBA代码?也许VBA运行时间太长,以至于它将设计模式中的报告打开的时间足够长,可以被察觉。

当我从VB6应用程序调用MS Access报告时,我发生了同样的事情。它在我的情况下发生的原因是因为我有一个表单设置为在启动时出现。如果您没有选择启动表单,它将不会显示,因此不会闪烁。

如果有帮助,请告诉我。

麦克

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top