【问题标题】:Access 2010 VBA: Why can't I reopen a previously closed form?Access 2010 VBA:为什么我不能重新打开以前关闭的表单?
【发布时间】:2020-07-13 21:30:45
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    你试过了吗?:

    DoCmd.Close acForm, "Form2"
    

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

    【讨论】:

    • 做到了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    相关资源
    最近更新 更多