Access

連接資料庫 Access

使用Visual Studio 2012連接Access資料庫

爬文

微軟官方:https://docs.microsoft.com/zh-tw/visualstudio/data-tools/connect-to-data-in-an-access-database-windows-forms?view=vs-2022

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。