我有一個舊的 Access 2000 32 位應用程式,其中包含我試圖轉換為 Access 365 64 位應用程式的表單和代碼。舊資料庫受密碼保護,但我有用于創建它的原始 System.mdw 檔案。我可以在我仍在運行的裝有 Access 2007 的 Windows XP PC 上打開它。我可以看到表單設計和 VBA 代碼。我可以將其保存為 ACCDB 檔案,但我無法在使用 Office 365 或 Access 2010 的 Win 10 或 11 PC 上打開它。
很多有價值的設計和邏輯都融入了這個我不想丟失的舊應用程式。任何幫助將不勝感激!
uj5u.com熱心網友回復:
首先,如果資料庫需要打開 mdw 安全檔案,則該資料庫不受密碼保護,而是使用我們所謂的 Access 安全性進行保護,或者更好地說是我們所謂的 Access 作業組安全性(或者它已經很長時間了,也許是用戶級別安全)。那不是密碼保護,而是用戶級別的安全性。
此安全性只能用于 mdb 檔案 - 不適用于 accDB 檔案。但是,要更改為非安全檔案,您必須附加到 mdw 檔案。
那么,假設您能夠使用 Access 2007 打開受保護的資料庫?
然后需要做的是洗掉資料庫上存在的用戶安全性。
最簡單的方法?
在 access 2007 中打開 mdb 檔案(連同 mdw 檔案)。毫無疑問,您要么使用指定 mdw 檔案的快捷方式,要么進入安全設定并選擇該檔案。
那么,如何“去除”安全性呢?
好吧,您在 2007 年打開了 mdb 檔案。所以,現在關閉資料庫但不要退出 a2007。(原因是您仍然附加到 mdw 檔案)。
現在,創建一個空白的新 accDB 檔案(并且您仍然附加到 mdw 檔案)。
現在,將所有表單和“所有內容”匯入到新的 accDB 檔案中。
您現在可以退出 a2007,然后重新啟動(不使用該 mdw 檔案)。或者您可以將 accDB 檔案移動到較新的計算機 - a2010,甚至 2019,或者新的 365 版本應該能夠打開 accDB。
也可以啟動a2007,新建accDB。然后如上所述,退出,現在使用正確的 mdw 檔案重新啟動 a2007 以允許打開/使用 mdb 檔案。此時,您關閉 mdb 檔案(但不退出訪問),打開新的 accdb 檔案,然后再次簡單地將所有表單、代碼等匯入到新的 accDB 檔案中。
因此,無論哪種方式,您都需要將 a2007 中的簡單需要附加到 mdw 檔案,然后您就可以打開 accDB 檔案,并從 mdb 匯入所有內容 - 這樣做會解除 mdb 檔案的安全性,并且您以一個新的 accDB 檔案結束,所有內容都已匯入。
一旦完成,該 accDB 檔案就可以(應該)作業并且能夠與任何最新版本的訪問一起使用。
現在“可能”您也可以在 a2007 中嘗試另存為并創建一個 accDB 檔案,但我的記憶似乎表明您必須/必須創建然后匯入所有內容。
但是,如果您能夠保存為 accDB,那么該檔案應該可以在較新的版本中使用。如果沒有,請嘗試上述建議的匯入想法。
我還應該指出,x32 和 x64 的檔案格式是相同的。
在大多數情況下,VBA 代碼應該可以運行和作業(在 VBA 編輯器中進行除錯->編譯以查看是否有代碼無法編譯)。即使是 x64 位版本的 office/access 365 中的大部分 VBA 代碼也應該可以正常作業。但是,如果該舊程式使用我們稱之為 Windows API 代碼的代碼,則可以修復此類代碼 - 但需要您付出一些努力。
此外,雖然在 Access 中不是很常見,但如果他們使用任何 ActiveX 控制元件,則必須將這些控制元件更改為 x64 位。但是,一次一步,您想要獲得一個可以打開的 accDB - 從那時您可以檢查/查看并測驗是否有任何 VBA 代碼需要更改(它不應該)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/508022.html