首页 > 解决方案 > VBA - 如何在报告视图之间翻转时阻止代码执行

问题描述

我正在使用类似项目模板的报告。我有代码在它打开时对其进行格式化。问题是,代码在切换到打印预览视图时执行。在该视图中不允许对代码进行某些格式设置。

我通过在我的报告中放置一个名为“txtFormatted”的不可见文本框来解决这个问题。我的代码在完成格式化后使用“True”填充它。当文本框具有该值时,模块不会执行。

但这个解决方案似乎草率。人们如何在打开报表时执行代码但在翻阅视图时不再次运行?

标签: ms-accessvba

解决方案


在报告的代码模块顶部使用私有变量(报告专用),而不是文本框:

Option Compare Database
Option Explicit

Private IsFormatted As Boolean

打开报表时为False 。然后像现在一样将其设置为True ,并在运行格式化代码之前检查此变量。


推荐阅读