无需等待固定的时间,而是在首次单击时禁用命令按钮。然后执行长时间运行的操作,然后再次启用命令按钮。
假设命令按钮的名称是cmdToExcel ...
Private Sub cmdToExcel_Click()
Me.txtNote.SetFocus
Me.cmdToExcel.Enabled = False
' replace next line
MsgBox "call long running code here"
Me.cmdToExcel.Enabled = True
Me.cmdToExcel.SetFocus
End Sub
请注意,在禁用命令按钮之前,您必须SetFocus
使用不同的控件,因为 Access 不允许您在它仍然具有焦点时禁用它。
你可能不想SetFocus
回到最后的命令按钮 --- 我只是对那个做了一个疯狂的猜测。:-)
似乎代码流控制在长时间运行的过程完成之前返回到单击事件过程。因此命令按钮过早地再次启用。
Sleep
在这种情况下,您可以在调用长时间运行的代码后使用 API 声明插入暂停。
Private Sub cmdToExcel_Click()
Me.txtNote.SetFocus
Me.cmdToExcel.Enabled = False
' replace next line
MsgBox "call long running code here"
Sleep 5000 ' 5 seconds
Me.cmdToExcel.Enabled = True
Me.cmdToExcel.SetFocus
End Sub
我现在意识到这就是你首先要求的。对不起,我很厚。