2008-09-17 66 views
1

我的Access 2000數據庫導致我的問題 - 有時(沒有指出原因)「書」形式不會關閉。點擊它的關閉按鈕什麼也不做,文件 - >關閉什麼也不做,即使在沒有任何操作的情況下關閉訪問結果。我沒有這種形式的OnClose處理程序。我能找到的唯一解決方法包括打開Vba編輯器,對該表單的代碼進行更改(甚至添加一個空格,然後立即刪除該空格),然後返回關閉「書本」表單,關閉它,然後說「不,我不想保存這些變化」。只有這樣它纔會關閉。任何幫助?什麼能防止MS Access 2000表單關閉?

+0

替代解決方法:在設計視圖中編輯表單,然後再次拒絕保存。 – Thelema 2008-09-17 15:45:30

回答

1

這裏是一個論壇帖子,描述我認爲你面臨的同樣的問題。以下摘錄闡述了一種解決方法。

我要做的就是把代碼上的關閉按鈕重新分配sourceobject任何子窗體的一個空白表單,如 :

我subParts.sourceobject =「subBlank」「subBlank是我的形式是 完全空白,免費的代碼和控制等 docmd.close acForm,「fParts」,acSaveNo

上面兩行是我發現,防止訪問提示 從彈出的唯一途徑向上。

http://bytes.com/forum/thread681889.html

0

這確實很奇怪。你有任何計時器控件的形式?如果這樣做,請嘗試在OnClose中禁用它。

+0

不,我不在整個項目的任何地方使用任何定時器控件。 – Thelema 2008-09-17 15:31:34

0

有可能在窗體後面顯示詢問您是否要保存更改的消息框。我相信這個消息框是模態的,所以你必須點擊是或否,然後才能對錶單做任何事情,這就是爲什麼你不能關閉它的原因。

+0

我不認爲這是事實,因爲在嘗試關閉表單後,我仍然可以與表單交互,轉到下一條記錄,進行更改等。 – Thelema 2008-09-17 15:34:41

0

您的表單是否有卸載事件?這可以被取消,如果是,表單在表單視圖時不會關閉。它只能在設計視圖中關閉,當您編輯代碼時,在編輯vba代碼時窗體會在Access窗口中執行。

+0

表單僅包含OnCurrent,BeforeUpdate和OnOpen事件。 – Thelema 2008-09-17 15:47:11

0

請問您的形式有一個複選框,切換按鈕或選項按鈕?有Access 2000中有一個錯誤的訪問不會在未明確使用VBA代碼Value屬性,如果你測試值接近,就像這樣:

If Me.chkbox Then 

與:

If Me.chkbox.Value Then 
+0

我的所有表單上都有一個複選框,其代碼完全相同。我不認爲這會導致我原來的問題,但我會在任何地方解決這個問題,所以我不會遇到這個錯誤。 – Thelema 2008-09-17 16:25:36

1

另一種方法是

(Me.Checkbox) 

或我的優選的句法:

(Me!Checkbox) 

在我看來,在這個主題的帖子中有很多混淆。原始海報選擇的答案引用了一篇文章,其中用戶提示將設計更改保存到表單中,但這裏描述的問題看起來像是表單關閉的失敗,而不是保存問題(保存問題只能在描述進入VBE並進行代碼更改的變通方法中出現)。

我想知道原始用戶是否可能設置了錯誤的VBE選項?如果打開VBE並轉到工具|選項,在常規選項卡上,你會看到幾個關於錯誤處理的選擇。應該選擇在CLASS MODULE中未發生錯誤或中斷,但重要的是要認識到如果使用前者,則可能看不到某些類型的錯誤。

沒有足夠的細節來診斷更多,除了引用複選框控件似乎導致問題,但有一些Access編碼最佳實踐可以幫助您避免一些這些古怪。 Tony Toews's Best Practices page中與代碼相關的建議是一個很好的開始。