Access
連接資料庫 Access
使用Visual Studio 2012連接Access資料庫
爬文
OLE DB Provider for Jet 和 ODBC 驅動程式是 32 位版本 ,Access 2000-2003 資料庫 (.mdb 檔案) 。
32位元Provider: Miscrosoft.OLEDB.Jet.4.0
範例:Public AccessCnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Data\datasheet.mdb;Persist Security Info=False"
Visual Studio版本分界:2019(含)之前為32位元版本,之後為64位元版本,64 位的 Microsoft Access 資料庫引擎,也稱為 Access Connectivity Engine (ACE),Access 資料庫 (.accdb 檔案) 。
64位元Provider: Miscrosoft.ACE.OLEDB.12.0
Excel
關鍵字:Microsoft Access Database Engine 2010
連接Excel參考文獻:https://ithelp.ithome.com.tw/articles/10044531
32位元連接範例:
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + p_sExcelPath + ";Extended Properties=\"Excel 8.0;IMEX=1\"";
64位元連接範例:
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + p_sExcelPath + ";Extended Properties=\"Excel 12.0;IMEX=1\"";
Access
64位元作業系統、Office 2016、Access 資料庫,
模組 Pub_Module.vb
Public strConn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\kbook\data\Database.accdb;Persist Security Info=False"
程式內連接 Access 資料庫
Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection(strConn)
Dim strSQL As String = "select * from datasheet "
Dim adtp As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(strSQL, con)
Dim dt As DataTable = New DataTable()
For i=0 To dt.rows.count() - 1
變數名稱 = dt.rows(i).item("欄位名稱")
Next For
con.Open()
adtp.Fill(dt)
執行環境
Windows 10 企業版 1809 64位元
Visual Studio Perfessional 2012
未安裝 AccessDatabaseEngine
Office 2016 64位元專業增強版
控制台>>程式與功能>>開啟或關閉Windows功能:
.Net Framework 3.5(包括 .Net 2.0 3.0)
.Net Framework 4.7 Advanced Services 勾選 ASP.NET 4.7 、 WCF服務。
未勾選 IIS
64位元作業系統、Office 2019、Access 資料庫,使用Visual Studio 2012連接方法
Error: 將上面開發的專案,移植到本環境執行之後,出現錯誤「Microsoft.Ace.Oledb.12.0提供者並未登錄於畚箕電腦上」。
解決方法:
※安裝 AccessDatabaseEngine,載點 https://www.microsoft.com/zh-tw/download/details.aspx?id=13255。
.Net Framework 3.5(包括 .Net 2.0 3.0)
.Net Framework 4.7 Advanced Services 勾選 ASP.NET 4.8 。
勾選 IIS,網站進階設定,允許執行32位元 True。