2017-07-16 39 views
0

我最近爲客戶開發了一個項目,其中涉及使用C#在Visual Studio 2015/2017中以編程方式使用Microsoft Access數據庫。在Visual Studio中打開Access文件時無法識別的數據庫格式 - 爲什麼?

數據庫在我的64位版本的Microsoft Access 2010中打開就好了,我可以很好地使用/更改所有表格/查詢。但是,當試圖在Visual Studio中打開此.accdb數據庫時,我遇到了可怕的「無法識別的數據庫格式」。現在,我確實安裝了用於2007和2010的Microsoft Office Access數據庫引擎,並且可以打開/使用Access中創建的其他數據庫。

我相信數據庫是在Access 2007中創建的,因爲當我打開它時,窗口的標題包含「(Access 2007 - 2010)」,所以我不確定是否會導致錯誤?

我發現的一件有趣的事情是,因爲我不需要數據庫中的每個表,我一個接一個地將需要的表複製到一個新的數據庫文件中,並檢查是否可以在Visual Studio中打開這個新的Access數據庫。在我需要的6個表中,我需要的最後一個表導致文件在Visual Studio中變得「無法識別」。

爲什麼?我不知道。該表與其他任何表一樣,包含許多具有文本,數字或日期的列。

我的問題是,有沒有人有類似的經驗呢?難道它是由Access 2007製作的嗎?爲什麼要複製並粘貼到一個新的數據庫,然後導致該數據庫被損壞?

非常感謝。

+0

SWAG。當複製問題表(假設你正在使用複製/粘貼)時,嘗試粘貼「表結構」,看看你是否可以在你的代碼中打開它。您可能有損壞的表/索引完整副本傳輸到新文件。 – TnTinMn

+0

@TnTinMn只用「表格結構」複製和粘貼所有表格仍然給我一個錯誤。這是否意味着錯誤在於某個表引用了另一個表/值,這可能不在那裏? – user2764359

+0

AFAIK,複製「表結構」不會導入任何關係。我能想到的唯一的事情就是你在某種程度上使用2007 ACE驅動程序,而問題表使用的是2010+功能或許是[計算字段](https://msdn.microsoft.com/en-us/library/辦公室/ ff945943(v = office.14)的.aspx)。我沒有使用過這個功能,所以這只是猜測。你可以發佈問題表的模式嗎? – TnTinMn

回答

0

格式有所不同。舊格式(..2007)是MDB,後者(2010 ...)是ACCDB。如果您使用了僅在ACCDB中可用的任何功能(如附件),則無法將其轉換回MDB,並且除Access以外的任何當前Microsoft工具都不能打開它。奇怪而真實。

痛苦的是,以排除那些使用新的功能,然後進行轉換.....嘆息表或形式.....

相關問題