2009-08-19 65 views
0

我完全喪失了,表格只是改變了我的行爲;它正在工作,然後停下來沒有明顯的原因。我從一個按鈕打開它:爲什麼NewRecord屬性對我說謊?

DoCmd.openForm "formName", , , "ID=" & Me.ID 

調試跟蹤顯示此值正確設置在這一點上。當表單加載時,我需要使用OnCurrent事件來設置一些顯示項目。

Private sub Form_Current() 
    if Me.NewRecord Then 

在這一點上,它說,沒有記錄,調試信息表示,該記錄是BOF和EOF,因爲如果查詢不匹配。但是,如果我在那一刻運行保存的查詢,它會顯示正確的信息。此外,如果我停止執行,將表單打開,然後再次點擊該按鈕,則確實正確加載數據。我很難過。

編輯 - 從備份導入表單並重新輸入更改後,整個問題就消失了。我猜腐敗,但它是如何搞砸的,這是一個謎。

+0

如果你想發佈你的解決方案,這是從備份導入的形式,我會投票。你也可以看看反編譯。 – Fionnuala 2009-08-20 09:09:59

+0

也許你有一個保存的過濾器干擾了傳入的WHERE標準。這是訪問表單和報告的長期煩惱。 – 2009-08-20 19:18:02

回答

1

重命名問題表單,然後從備份導入表單修復它。重新命名是明智的,如果您需要掃描備份以來的更改。

感謝Remou,我也忘記了/反編譯選項,它可能已經修復了它。

雖然我回答了這個問題,但我還應該補充:不要運行前端表單的兩個副本,無論是在同一臺計算機上還是跨越網絡的多臺計算機上......拆分數據並確保每個前端進程有它自己的前端副本。我認爲這導致了形式腐敗。