office交流网--QQ交流群号

Access培训群:792054000         Excel免费交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

Access窗体使用 [Form].[Recalc] 时如何避免闪烁(Flickering )

2019-12-08 08:00:00
zstmtony
转贴
4545
Access窗体使用 [Form].[Recalc] 时如何避免闪烁(Flickering )

我正在使用MS Access 2013,并且有一个计算,在每次更改基础值时都需要更新。“记录”本身不需要更新,只需在保存记录之前更新“监视”值即可。

该表单有12个会计年度的月份(10月-9月),并且在每个文本框中输入了“Currency”值。每次每次更改时,所有文本框的总值都需要显示在底部。目前可以,但是闪烁剧烈。

结构如下

每个文件框在 AfterUpdate 事件有如下代码  : =[Form].[Recalc]

 合计 "Total" 文本框有如下公式:
=Nz([txtOCT_Nc],0)+Nz([txtNOV_NC],0)+Nz([txtDEC_NC],0)+Nz([txtJAN_NC],0)+Nz([txtFEB_NC],0)+Nz([txtMAR_NC],0)+Nz([txtAPR_NC],0)+Nz([txtMAY_NC],0)+Nz([txtJUN_NC],0)+Nz([txtJUL_NC],0)+Nz([txtAUG_NC],0)+Nz([txtSEP_NC],0)

如何使用VBA代码来避免闪烁呢


解决方法:
在模块中创建以下函数

Private Function MyRecalc()

    Application.Echo False
    Me.Recalc
    Application.Echo True

End Function

改变控件的更新后事件 AfterUpdate 为
=MyRecalc()
分享