Ms access Access 2010 VBA:为什么可以';我不能重新打开以前关闭的表单吗?

Ms access Access 2010 VBA:为什么可以';我不能重新打开以前关闭的表单吗?,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我有一个表单“Form1”,当点击表单1中的“Command1”按钮时,它会打开另一个表单“Form2”。如下面的代码所示,控件传递给Form2,一旦用户对Form2执行了一些操作,Form2就会隐藏或关闭自己,然后将控件返回给Form1。不管Form2是隐藏的还是关闭的,Form1都会执行一些操作并关闭Form2 Private Sub Command1_Click() DoCmd.OpenForm "Form2", , , , , acDialog If CurrentPro

我有一个表单“Form1”,当点击表单1中的“Command1”按钮时,它会打开另一个表单“Form2”。如下面的代码所示,控件传递给Form2,一旦用户对Form2执行了一些操作,Form2就会隐藏或关闭自己,然后将控件返回给Form1。不管Form2是隐藏的还是关闭的,Form1都会执行一些操作并关闭Form2

Private Sub Command1_Click()
    DoCmd.OpenForm "Form2", , , , , acDialog
    If CurrentProject.AllForms("Form2").IsLoaded Then
        'Do stuff 
    End If
    DoCmd.Close acDialog, "Form2"
End Sub
第一次打开Form1时,这似乎工作得很好。但是,当我关闭并重新打开Form1,然后重复上述步骤时,Form2不会出现,控件会直接传递到上述子例程中的If语句。发生了什么?一个线索是,在第一次打开Form2后,CurrentProject.AllForms(“Form2”).IsLoaded似乎永久设置为True

发生什么事了?我怎样才能解决这个问题?谢谢你的帮助。

你试过了吗?:

DoCmd.Close acForm, "Form2"

常量acDialog解析为3,而acForm解析为2。代码实际上是告诉Access关闭名为Form2的报表。表单从未正确卸载,可能是因为使用了错误的常量。

就是这样。谢谢