MS Access切换至打印预览时未绑定文本框被重置为Null的问题求助
MS Access升级后报表未绑定文本框视图切换时重置为Null的问题解决
问题原因
Access 365及较新版本中,报表在**视图切换(报表视图↔打印预览)**时,会重新初始化控件状态:
Report_Load事件仅在报表首次打开时触发一次,切换视图不会再次执行;- 未绑定文本框的值不属于报表数据源的一部分,不会被Access自动持久化,切换视图后会被重置为Null;
- 直接以打印预览模式打开报表时,
Report_Load(或Report_Open)会正常执行,赋值操作生效,因此无异常。
解决方法
1. 将赋值逻辑移至Report_Open事件
Report_Open事件在每次视图切换时都会触发,能确保控件值被重新赋值:
Private Sub Report_Open(Cancel As Integer) Me.Text0 = "Yay! Data!" End Sub
2. 绑定到报表自定义属性
通过将文本框绑定到报表的自定义属性,实现值的持久化:
- 打开报表设计视图,右键报表空白处→属性→切换到「其他」选项卡;
- 添加自定义属性(例如命名为
ReportCustomValue); - 在
Report_Open或Report_Load中为属性赋值:Private Sub Report_Open(Cancel As Integer) Me.ReportCustomValue = "Yay! Data!" End Sub - 将Text0的控件源设置为:
=[ReportCustomValue]
3. 直接以打印预览模式打开报表
如果业务流程不需要报表视图,可通过代码直接打开预览模式,避免视图切换:
DoCmd.OpenReport "YourReportName", acViewPreview
内容的提问来源于stack exchange,提问作者AmpIpod
相关产品推荐
相关产品推荐

