我維護一個使用Microsoft的連接字符串提供程序調用OleDbConnection.Open()的.NET 3.5應用程序(使用Visual Studio 2008) .ACE.OLEDB.12和格式爲Access97的MDB文件。此應用程序要求安裝Access 2007 Runtime。Access 2010運行時導致.NET OleDbConnection.Open()失敗,並使用Access97 MDB文件
如果安裝了Office 2007 Runtime並且未安裝Access 2010 Runtime,則調用OleDbConnection.Open()將會成功。一旦安裝Access 2010 Runtime(例如,用戶安裝Office 2010),呼叫就會失敗。錯誤消息是「無法打開使用以前版本的應用程序創建的數據庫」。
從閱讀StackOverflow上其他線程和其他地方,看來Access 2010中不支持讀取或轉換ACCESS97 MDB文件。一旦安裝了Access 2010 Runtime,是否沒有辦法調用Office 2007 Runtime的功能(不會卸載Access 2010)。
另一種方法是通過編程從ACCESS97 MDB轉換爲可以通過Access 2010中讀出我已經打過電話以後格式: Microsoft.Office.Interop.Access.Application.ConvertAccessProject()在Microsoft實施訪問14.0對象庫;與各種版本的Access安裝,但我得到一個COM錯誤(80080005服務器執行失敗)。
我也試着在我的應用程序中使用/ Convert標誌啓動msaccess.exe。這會導致Access 2000打開但出現錯誤消息(「Microsoft Access無法轉換...」)。
順便說一句,MDB數據庫不包含任何「複雜」,沒有關係數據,沒有宏,沒有安全等,只是平坦的記錄。
我在Allen Browne的網站(http://allenbrowne.com/ser-48.html「Converting from Access97」和http://allenbrowne.com/Access2007.html「Converting Access 2007」)上找到了一些有用的編程提示,但沒有發現任何內容。
有關解決此問題的最佳方法的任何想法?
我必須支持Access 97,因爲它是我必須使用的幾個遺留系統中的原則數據文件?我們是否說沒有辦法做到這一點? – Jordan