最近,我在安裝 MS Office 2007 時遇到了一個與 Access 2007 相關的重大問題,該問題導致出現無法正確引用 ActiveX 資料物件 6.1 的錯誤。
在嘗試解決問題時,我發現Office安裝有兩個非常相似的資料夾:
C:\Program Files (x86)\Common Files\System\ado\
C:\Program Files \Common Files\System\ado\
兩個資料夾的內容非常相似,但所有檔案的大小略有不同。這是儲存許多 Access 引用 ActiveX 資料物件的位置。
我發現預設情況下我的 Access Reference 導航器會引導我進入該(x86)
資料夾,而另一個資料夾是不是可供我導航並選擇實際所需的 DLL 檔案。
我還發現微軟從未發布過 64 位元版本的 Office(我對此資訊表示懷疑),我認為這意味著所有文件都位於該(x86)
資料夾中是有意義的。
為什麼會有兩個不同的資料夾具有幾乎相同的檔案名稱(不同大小)(這意味著同名檔案具有不同的程式碼)?
這是否意味著 ActiveX 資料物件 6.1 有兩個不同版本?
這是否意味著我的問題是我無法引用正確的文件版本?
PS:我最終不得不透過執行安裝 CD 中的修復命令來修復該錯誤。
答案1
Microsoft 提供了 32 位元版本和 64 位元版本的 ActiveX 資料元件。這樣,軟體開發人員就可以製作使用它們的 32 位元和 64 位元程式。它們大小不同的原因是 32 位元和 64 位元記憶體指標的大小不同。 (通常,這意味著 64 位元版本會更大,但情況並非總是如此,因為 64 位元處理器也進行了大量最佳化,使某些類型的程式碼使用更簡單的二進位/彙編程式碼運行。)
您認為這些元件與 Office 一起安裝的假設是不正確的。 ADO 是「Microsoft 資料存取元件」(MDAC) 套件的一部分,它實際上是作業系統的一部分。這就是為什麼版本號 6.1 與 Windows 7 的 Windows 版本號(也是 6.1)相符。
您的 Microsoft Access 版本引導您進入該(x86)
資料夾的原因是它是 32 位元版本的 Access,因此只能使用 32 位元元件。如果您有 64 位元版本的 Access(與您在問題中的斷言相反,它確實存在),您將只能查看非目錄中的元件(x86)
。
(您能夠透過執行 Windows 修復來解決原始問題的事實意味著您的 Windows 安裝出現問題,或者可能是 Windows 更新在安裝時損壞。但是,這絕對與這兩個資料夾的存在。)