我已經升級舊的Access 2003數據庫訪問2010年原來的數據庫是Access前端(安裝在客戶端)和後端(駐留在服務器上)分裂的任何代碼。新數據庫使用前端訪問,但後端已移至SQL服務器。ACCDE跑使用運行時將停止從執行
一旦結束我創建了一個ACCDE文件和打包的了在安裝程序分發到所有的客戶端PC。安裝程序會創建一個桌面快捷方式,以運行時模式運行Access 2010並啓動前端數據庫。
我在本地測試它,在我的開發PC上一切都很好。但在測試客戶端PC(安裝了Office 2010)時,打開停止所有正在執行的代碼的數據庫時會出現錯誤。這顯然是一個非常嚴重的錯誤,並阻止任何人使用數據庫。
的錯誤是
The expression On Current you entered has the event property setting produced the following error
The expression may not result in the name of a macro, the name of a user defiend function, or event procedure.
我已經確保了數據庫在一個可信的位置,並啓用所有宏嘗試過,但仍然得到了同樣的錯誤。在創建accde之前,我還確保所有代碼都能編譯。
我已經在乾淨的測試電腦上手動複製了accde文件,以檢查它是否與安裝程序有關,甚至以完全訪問方式打開accde(即不使用/運行時標誌)會給出相同的錯誤。如果我將accdb文件複製到客戶端PC,那麼它運行良好,但顯然,分發accdb並不是運行數據庫的安全方式。
我也試過創建一個空白訪問2010年數據庫和導入所有的對象從更新後的版本(這是一個mdb文件已轉換爲accdb)檢查它沒有問題的方式訪問轉換原始mdb - 仍然是相同的錯誤。
有沒有人遇到這個錯誤之前,/可以在其上一些啓發我,我很好,忠實地難住了。
編輯:玩弄在測試客戶端PC,我注意到,如果我打開ACCDB文件,然後將其保存爲ACCDE,覆蓋安裝的版本,然後它會正常工作後。但是這明顯增加了對所有客戶端的安裝,並且使其無法自動化。所以它本身並不是一個可行的解決方案......希望它能指向某個正確方向的人。
EDIT2:我也檢查,證實所有引用是完整的,即DLL/OCX /等,並出現在測試客戶端PC
感謝您的回覆。看起來很可能該修補程序可以提供幫助,但是(具有各種時間限制的)我們將它作爲accDB文件安裝並使用/ runtime標誌運行它,因爲這也解決了問題。它並不像我想要的那樣安全,但它現在已經可以滿足所有用戶的需求,所以我不會失去太多的睡眠! –