我编写了一个 MS Access 2000 报告,该报告显示一个日历,每页一个月,项目添加到特定日期。基础记录源中的唯一数据是月份列表。该结构是通过 On Page 事件创建的,该事件还读取其他数据。
打开此报告时,我注意到第一页似乎没有触发 On Page 事件。(我将此归因于这样一个事实,即在缓存页面而不是显示页面时激活报表中的 On Page,例如 On Current for Access 表单。)
当显示报告时,我的解决方法是使用 On Activate 事件来强制 On Page 子例程运行,即使该事件尚未被调用。但是,当导出报表时,它不会触发 On Activate 事件,并且导出的第一页采用以下两种格式之一:1) 如果报表在 Access 中打开(即之前已触发 On Activate),则第一页是与显示的页面之后的页面或最后一页相同,除了正确的月份(来自基础记录源)2)如果报表未在 Access 中打开,则第一页仅包含报表设计中的结构查看(即很多空框)
我最好的解决方法是强制使用(否则毫无意义的)封面,以确保第一页不包含任何需要运行代码的内容,但这远非理想。我可以强制代码在导出的第一页运行吗?或者我可能误解了 On Page 的工作原理,我需要重组我的代码?(我还注意到 On Page 似乎在最后一页运行了两次)。