最新的Access 2013 安裝后,已經不能對dbf文件進行鏈接讀取了,Access 2010以前的版本都可以,如果以前的項目用了Access鏈接大量的dbf文件的話,
升級Access 2013后,訪問鏈接dbf文件的表,就會出錯,具體的解決辦法是,安裝Access 2010的運行時環境,在改注冊表。
我的環境是win7 64bit + Office 2013 plus 64bit。
1,下載Access 2010的支持環境AccessDatabaseEngine_X64.exe
https://www.microsoft.com/en-us/download/details.aspx?id=13255
2,修改注冊表,將下面的文件保存為一個merge.reg文件,雙擊這個文件導入注冊表。
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Xbase] "win32"="C:\\PROGRA~1\\COMMON~1\\MICROS~1\\OFFICE14\\ACEXBE.DLL" "Mark"=dword:00000000 "DbcsStr"=hex:01 "Date"="MDY" "Exact"=hex:00 "Deleted"=hex:01 "Century"=hex:00 "CollatingSequence"="Ascii" "DataCodePage"="OEM" "NetworkAccess"=hex:01 "PageTimeout"=dword:00000258 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats\dBASE 5.0] "Engine"="Xbase" "ExportFilter"="dBASE 5 (*.dbf)" "ImportFilter"="dBASE 5 (*.dbf)" "CanLink"=hex:01 "OneTablePerFile"=hex:01 "IsamType"=dword:00000000 "IndexDialog"=hex:00 "CreateDBOnExport"=hex:00 "SupportsLongNames"=hex:00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats\dBASE III] "Engine"="Xbase" "ExportFilter"="dBASE III (*.dbf)" "ImportFilter"="dBASE III (*.dbf)" "CanLink"=hex:01 "OneTablePerFile"=hex:01 "IsamType"=dword:00000000 "IndexDialog"=hex:00 "CreateDBOnExport"=hex:00 "SupportsLongNames"=hex:00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats\dBASE IV] "Engine"="Xbase" "ExportFilter"="dBASE IV (*.dbf)" "ImportFilter"="dBASE IV (*.dbf)" "CanLink"=hex:01 "OneTablePerFile"=hex:01 "IsamType"=dword:00000000 "IndexDialog"=hex:00 "CreateDBOnExport"=hex:00 "SupportsLongNames"=hex:00
注意事項:
1,如果是在win7 64bit安裝的32bit 的Office 2013,需要下載32位的AccessDatabaseEngine_X32.exe。
參考這篇文章:http://jonwilliams.org/wordpress/2014/03/21/enabling-xbase-dbf-support-in-microsoft-office-access-2013/
2,注冊表內容用下面的內容替換:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access Connectivity Engine\Engines\Xbase] "win32"="C:\\PROGRA~2\\COMMON~1\\MICROS~1\\OFFICE14\\ACEXBE.DLL" "DbcsStr"=hex:01 "Mark"=dword:00000000 "Date"="MDY" "Exact"=hex:00 "Deleted"=hex:01 "Century"=hex:00 "CollatingSequence"="Ascii" "DataCodePage"="OEM" "NetworkAccess"=hex:01 "PageTimeout"=dword:00000258 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats] [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats\dBASE 5.0] "Engine"="Xbase" "ExportFilter"="dBASE 5 (*.dbf)" "ImportFilter"="dBASE 5 (*.dbf)" "CanLink"=hex:01 "OneTablePerFile"=hex:01 "IsamType"=dword:00000000 "IndexDialog"=hex:00 "CreateDBOnExport"=hex:00 "SupportsLongNames"=hex:00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats\dBASE III] "Engine"="Xbase" "ExportFilter"="dBASE III (*.dbf)" "ImportFilter"="dBASE III (*.dbf)" "CanLink"=hex:01 "OneTablePerFile"=hex:01 "IsamType"=dword:00000000 "IndexDialog"=hex:00 "CreateDBOnExport"=hex:00 "SupportsLongNames"=hex:00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats\dBASE IV] "Engine"="Xbase" "ExportFilter"="dBASE IV (*.dbf)" "ImportFilter"="dBASE IV (*.dbf)" "CanLink"=hex:01 "OneTablePerFile"=hex:01 "IsamType"=dword:00000000 "IndexDialog"=hex:00 "CreateDBOnExport"=hex:00 "SupportsLongNames"=hex:00
win7 32bit 下安裝 Office 2013 32bit的話,上面的注冊表文件的內容值做相應的修改,原則就是注冊表的key路徑要匹配你2010的安裝路徑,
例如這些路徑是否正確:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access Connectivity Engine\ISAM Formats\dBASE IV]
舉一反三,不再例舉。
