当我输入这个问题时,我意识到问题可能是什么,然后能够解决它。因此,我发布了问题,然后发布了答案,以防它对其他人有所帮助。
我正在使用 MS Access 2016。我有一个显示按钮菜单的 Form_A——每个按钮将用户带到不同的表单以执行用户需要执行的任何功能。例如,一个 Form_A 菜单按钮可以是 [Add Clients],而另一个按钮可以是 [Add Staff],等等。
当用户第一次登录系统时,我使用 VBA 代码来执行一些“大扫除”功能。Form_A 和按钮是可见的,但我制作了一个 Form_B,它是一个小对话框,显示“工作”一词和动画“...”,而 Form_A 中的 VBA 进行大扫除。
我无法解决的问题是,即使我将 Form_B 的“弹出”属性设置为“是”并将其“模态”属性设置为“是”,用户仍然可以单击 Form_A 菜单上的按钮,然后在 Form_B 执行时执行还在做大扫除。
我认为将 Form_B 设置为模态应该可以防止 Form_A 上的按钮点击被注册。
更多细节:
- 在Form_Load事件中,Form_A 调用驻留在模块中的“内务处理”代码。该模块有一个名为“RemakeTables”的 Public Sub。RemakeTables 代码用于
DoCmd.OpenForm "Form_B"
显示“工作”对话框。 - RemakeTables 代码调用了其他几个 Public 子程序。在每次调用其他公共子程序之间,
DoEvents
调用一个允许“工作”对话框为“...”设置动画(即,在“工作”、“工作”、“工作......”和“工作”之间循环)在职的...”)。
我的预感是DoEvents
允许点击在 Form_A 中注册。
我应该如何做到这一点,以便在显示 Form_B“工作”对话框但仍然可以动画时无法注册点击?