Access 2010 VBA:为什么我不能重新打开之前关闭的表单?

时间:2014-06-23 19:44:14

标签: vba access-vba ms-access-2010

我有一个表单“Form1”,当单击Form1中的按钮“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语句。怎么了?一个线索是CurrentProject.AllForms(“Form2”)。在Form2第一次打开后,IsLoaded似乎永久设置为True。

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

1 个答案:

答案 0 :(得分:1)

你试过吗?:

DoCmd.Close acForm, "Form2"

常量acDialog解析为3,而acForm解析为2.代码实际上是告诉Access关闭名为Form2的报告。可能,表格永远不会被正确卸载,因为错误的常数正在经历。