有时我们需要异步运行一些代码。 我将举例说明。
假设您有一个列表框,并且需要在列表框AfterUpdate事件过程中执行一些操作。 但是问题在于您的操作非常繁琐(它涉及根据复杂的查询打开记录集,进行一些计算并根据结果隐藏\查看控件)。 因此,当用户尝试按向上和向下箭头(在每一步触发AfterUpdate事件)在列表中“遍历”时,它似乎非常慢。
我在这里提出的解决方案使用Access的能力来异步评估计算字段。
1.在表单模块中创建一个函数。
Function MyAction() As String
'put your action code here
End Function
2.在表单上,使用ControlSource创建隐藏字段,如下所示:
=[ListBox1] & MyAction()
此方案将与AfterUpdate事件一样工作,但列表框选择变化太快的情况除外。
在这种情况下,MyAction函数将仅在最后一步运行,而不会减慢用户选择的速度。
From: https://bytes.com/topic/access/insights/650092-running-code-asynchronously