iT邦幫忙

5

Microsoft Access Database Engine 2010使用技巧

adison 2010-06-09 11:19:4418586 瀏覽

Microsoft Access Database Engine 2010使用技巧
由於公司有一個使用64位元環境的需求,因此需要弄一套可以在64位元環境上讀取excle檔案的環境
幸好MS在前陣子放了Microsoft Access Database Engine 2010可轉散發套件
因此決定使用這套件測試看看有沒有問題

以MS的傳統,我已經預期好會有許多奇妙的問題,也買好了泡麵stand by...
不過今天解決的過程異常順利,該說MS真的越來越強了嗎?

閒話不多說
其實這次只改了一個connection string就可以用了,只是內容和文件上記載的不同

Microsoft Access Database Engine 2010在網頁上的說明是:

  1. 如果您是應用程式的使用者,請參閱應用程式文件,以取得如何使用適當驅動程式的詳細資訊。
  2. 如果您是使用 OLEDB 的應用程式開發人員,請將 ConnectionString 屬性的 Provider 引數設定為 “Microsoft.ACE.OLEDB.14.0”
    ◦如果您連線至 Microsoft Office Excel 資料,請將 "Excel 14.0" 新增至 OLEDB 連接字串的擴充屬性。
  3. 如果您是使用 ODBC 連線至 Microsoft Office Access 資料的應用程式開發人員,請將連接字串設定為 “Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”
  4. 如果您是使用 ODBC 連線至 Microsoft Office Excel 資料的應用程式開發人員,請將連接字串設定為“Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file”
    移除此下載:

不過,上面說的14.0是錯誤的!!
正確的是12.0
我原本的conntion string:
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + p_sExcelPath + ";Extended Properties=\"Excel 8.0;IMEX=1\"";

修改成如下就可以用了,目前使用上沒有其他問題
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + p_sExcelPath + ";Extended Properties=\"Excel 12.0;IMEX=1\"";


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
shunyuan
iT邦研究生 1 級 ‧ 2010-06-09 15:18:24

完全看不懂。

0
huangsb
iT邦好手 1 級 ‧ 2010-06-10 08:06:30

也可以將你的程式編譯成x86平台,就可使用原本的conntion string:
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + p_sExcelPath + ";Extended Properties=\"Excel 8.0;IMEX=1\"";

因為MDAC已經不會再有64位元的版本

adison iT邦新手 3 級 ‧ 2010-06-11 11:01:53 檢舉

印象中我們有做過這件事情,不過還是會有錯誤發生,主要原因是OWC元件問題,所以才決定從頭換掉。我會再問一下老大是否可以這樣弄。

我要留言

立即登入留言