2012-07-06 156 views
1

我遇到了一個衆所周知的問題,但找不到任何解決方案。我有一個使用Excel使用某些Access數據(* .mdb)在VBA中編寫的舊應用程序(我不知道究竟有多大年紀)。該應用程序是在32位系統上編寫的。我試圖使用Office 2010
通過Excel的MS Access VBA

下面是我用來加載Access數據庫的代碼,將其更新爲新的64位系統:
Set Db = DBEngine.OpenDatabase(.sChemin & .sNom, False, False, ";pwd=******")

而我得到的錯誤:
429 Activex Component Cant Create Object

這裏是我的引用:

  • 的Visual Basic佛R應用
  • 的Microsoft Excel 14.0對象庫
  • OLE自動化
  • Microsoft窗體2.0對象庫
  • Microsoft腳本運行時
  • Microsoft數據訪問組件安裝的版本
  • Microsoft DAO 3.6對象庫

我已經試着註銷/重新註冊DAO DLL使用regsvr32 "C:\Program Files (x86)\Common Files\microsoft shared\DAO\dao360.dll",我得到了當我嘗試使用工作區時出現同樣的問題。

我不知道它是否會幫助,但Access使用CreateObject(「Access.Application」)時正常工作,並且我在兩個不同的時間安裝了Excel/Word和Access。

+0

Office 2010 64bit?或只是操作系統? – 2012-07-07 02:56:02

回答

0

嘗試刪除對Microsoft DAO 3.6 Object Library的引用,它很舊。添加對Microsoft Office 14.0 Access database engine Object Library的引用。

+0

我嘗試過,但是後來我得到了很多未定義的類型,例如「Recordset」。我對VBA不是很熟悉,它會給我重寫整個應用程序帶來麻煩。但是我知道這個應用程序在我的同事的計算機上運行,​​運行的是windows xp和同一個office 2010.我可以通過任何修改從其中獲得一些其他/ olders庫嗎? – 2012-07-06 12:21:24

+0

看看你的同事的參考。確保你有相同的參考。確保他們沒有被標記爲丟失。 – Fionnuala 2012-07-06 12:37:10

+0

不介意,我已經開始用.Net和mysql重寫整個東西。謝謝您的幫助。 – 2012-07-11 12:30:53