2014-06-23 88 views
0

當Form1中的按鈕「Command1」被點擊時,我有一個窗體「Form1」打開另一個窗體「Form2」。如下面的代碼所示,控制傳遞給Form2,並且一旦用戶使用Form2執行某些操作,Form2會隱藏或關閉自身,然後將控制權返回給Form1。無論Form2是隱藏還是關閉,Form1都會執行一些操作並關閉Form2。Access 2010 VBA:爲什麼我不能重新打開以前關閉的表單?

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時正常工作。但是,當我關閉並重新打開Form 1,然後重複上述步驟時,Form 2不會出現並且控件直接傳遞給上述子例程中的If語句。怎麼了?一個線索是,在第一次打開Form2後,CurrentProject.AllForms(「Form2」)。IsLoaded似乎永久設置爲True。

發生了什麼事?我怎樣才能解決這個問題?謝謝你的幫助。

回答

1

你有沒有試過?:

DoCmd.Close acForm, "Form2" 

恆acDialog解析爲3,而acForm resovles爲2的代碼實際上是告訴訪問關閉了一個名爲Form2的報告。這個表格永遠不會被正確地卸載,可能是因爲錯誤的常量正在經歷。

+0

這樣做。謝謝! – user3268289

+0

真棒,歡迎! – VBlades

相關問題