2011-06-16 82 views
3

ms-access(2003)中是否有編譯器選項,要求所有vba代碼在允許任何代碼運行之前編譯?我希望能夠關閉它。我試過取消選中'需要變量聲明'和'自動語法檢查'選項,但沒有結果。MS-Access編譯選項

背景資料
我剛獲得運行他們的機器上的罰款,但不會在我的機器上運行MS-Access數據庫。我在啓動時得到這個錯誤信息:

"The expression On Open you entered as the event property setting produced the following error: Method or data member not found" 

這是由什麼看起來像冗餘代碼的vba編譯錯誤引起的。有趣的是,這些代碼在任何一臺機器上都不能編譯,但是在他們的機器上它的數據庫可以在我的機器上使用。我假設它像一個編譯器選項一樣簡單,除了我找不到它!

(之前有人提到它,我知道真正的解決問題的方法是修復/刪除錯誤代碼)

+0

你能告訴我們有錯誤的代碼行嗎? – TheOtherTimDuncan 2011-06-17 11:34:28

+0

只需修復該死的代碼。 – 2011-06-17 18:26:27

+0

@ David-W-Fenton它可能不是代碼問題。這是我按照我的答案在同一臺計算機上運行兩個版本的訪問時得到的錯誤。 – Fionnuala 2011-06-17 21:18:07

回答

1

訪問具有/反編譯命令行開關。請參閱this StackOverflow question的接受答案。

+2

我不認爲反編譯是答案,在Tony Toews關於反編譯的很好的文章中:http://www.granite.ab.ca/access/decompile.htm,這並不是真正解決的問題之一。 – Fionnuala 2011-06-17 06:07:07

2

代碼將在沒有所有代碼編譯的情況下在MS Access中運行,但是,Open是表單打開時運行代碼的表單屬性,因此當表單打開時,該事件中的代碼將被編譯並運行。在安裝有兩個版本的PC(特別是,< 2007和> = 2007)上運行Access版本之前,我遇到過此錯誤。對我而言,解決方案是從幫助菜單中選擇修復。

+0

如果我在只安裝了Access 2007的PC上運行數據庫,那麼它將運行正常。如果我在運行Access 2003和2007的計算機上運行,​​那麼我會在問題中顯示錯誤消息。做一個緊湊和修復的方式不起作用。 – David 2011-06-21 15:29:19

+0

不是壓縮和修復,請從幫助菜單中選擇檢測並修復以修復Access的安裝。 – Fionnuala 2011-06-21 19:00:02

+0

剛剛嘗試訪問2007年檢測和修復版本,但沒有任何區別。看起來像檢測和修復被訪問2007年的方式(http://office.microsoft.com/en-gb/access-help/what-happened-to-detect-and-repair-HA010100384.aspx) – David 2011-06-22 09:34:24