Events 如何检查当前事件是否不在窗体的打开事件期间

Events 如何检查当前事件是否不在窗体的打开事件期间,events,ms-access,vba,Events,Ms Access,Vba,我有一个事件过程,当用户选择某个记录时将运行该过程 如果我把它放在当前事件中,它会起作用 但是,我不需要在打开表单时运行它。也就是说,当表单被打开并且记录被加载到表单上时,每次 已加载的记录。这会减慢我的程序,因为这是不必要的 我的问题是,如何检查事件在加载记录期间是否未运行 比如: on_current_event do: if event is not during on_load then do this end if end proc If Variable then Do S

我有一个事件过程,当用户选择某个记录时将运行该过程

如果我把它放在当前事件中,它会起作用

但是,我不需要在打开表单时运行它。也就是说,当表单被打开并且记录被加载到表单上时,每次 已加载的记录。这会减慢我的程序,因为这是不必要的

我的问题是,如何检查事件在加载记录期间是否未运行

比如:

on_current_event do:

if event is not during on_load then
do this
end if

end proc
If Variable then
  Do Stuff
Else
  Don't do stuff
End If

为什么不声明一个表单级布尔变量,并在表单加载完成后将其设置为true

在OnCurrent事件中,您可以执行以下操作:

on_current_event do:

if event is not during on_load then
do this
end if

end proc
If Variable then
  Do Stuff
Else
  Don't do stuff
End If
这可能并没有解决潜在的问题,但是…

在表单的代码中:

Private isLoading As Boolean

Private Sub Form_Open(Cancel as Boolean)
    isLoading = True
End Sub

Private Sub Form_Current()
    If isLoading Then 
        isLoading = False
        Exit Sub
    End If
End Sub
这样,当窗体打开时,OnCurrent事件的第一次出现将被绕过


话虽如此,在我看来,这并不是你真正的根本问题,但如果你想让其他人帮助你,你需要提供更多的信息,打开另一个问题。

当你打开表单时,你只应该在当前事件中得到一个信息-除非你做了一些奇怪的事情-你是在做一堆询问还是什么?对不起,是的,它可能被调用过一次。但当我转到另一张主格式的唱片时。它在主窗体中通过的每个记录都会被调用。慢下来这就是OnCurrent事件的全部目的:每当您移动到新记录时,都会调用它。OnLoad事件只在表单打开时调用一次。我认为这就是simon的解决方案。。然后添加Form\u Close或Form\u deactive isloading=true?关闭表单时无需添加任何内容。一旦关闭,物体通常会被破坏。如果再次打开它,将创建新的表单对象,并初始化所有值。属于表单的变量随表单一起消亡。