一、Microsoft Access数据库引擎——Jet、ACE

1、Microsoft.Jet.OLEDB.4.0提供程序

(1)、适用于Microsoft Access 2007以前的版本,如Microsoft Access 2000、Microsoft Access 2003等。
(2)、只有32位的版本

2、Microsoft.ACE.OLEDB.12.0提供程序

(1)、用于替代Microsoft.Jet.OLEDB.4.0提供程序,所以适用于Microsoft Access 的全部版本,如Microsoft Access 2003、Microsoft Access 2007、Microsoft Access 2010、Microsoft Access 2016等。
(2)、既有32位版本又有64位版本
(3)、一个操作系统只能安装一种位数的ACE,如安装64位需要卸载32位。
(4)、64位的应用程序只能调用64位的引擎、32位的应用程序只能调用32位的引擎。
(5)、64位应用程序需要连接64位或32位access就必须用64位的ACE引擎。

另外:

(1)、Microsoft.ACE.OLEDB.12.0 能访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 则不允许。
(2)、使用Jet引擎还是使用ACE引擎,网上也有说跟系统有关,如《vs2015 64位系统下使用mdb数据库问题》一文
(3)、如果提示“未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序”,则需要安装Microsoft Access 2010 数据库引擎可再发行程序包,官网下载网址:https://www.microsoft.com/zh-CN/download/details.aspx?id=13255
当然了,直接安装Microsoft Office 2010也可解决此问题。

二、如何获取数据库连接字符串

如图,在VS2017中点击“数据源”——“添加新数据源”——数据源类型选择“数据库”——点2次“下一步”。

进到如下图所示界面,点击“新建连接”,在弹出的“添加连接”窗口设置——“数据源”选择“Microsoft Access数据库文件(OLE DB)”,点击“浏览”选择你要连接的“数据库文件名”,如果数据库设置了密码的请输入密码,没有密码留空即可,点击测试连接,提示测试成功后点击确定。

回到“数据源配置向导”窗口,勾选如图所示的2项即可看到生成的数据库连接字符串为“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\position.accdb;Jet OLEDB:Database Password=#”。

三、测试数据库连接字符串

测试Microsoft.ACE.OLEDB.12.0提供程序:

Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\position.accdb;Jet OLEDB:Database Password=#")
        Try
            conn.Open()
            MessageBox.Show("连接成功!")
        Catch ex As Exception
            MessageBox.Show("连接失败!原因:" & ex.Message.ToString)
        Finally
            conn.Close()
        End Try

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

accdb文件测试结果:

测试mdb文件结果:

测试Microsoft.Jet.OLEDB.4.0提供程序

将连接字符串提供程序修改为Microsoft.Jet.OLEDB.4.0。

Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\position.mdb;Jet OLEDB:Database Password=#")

  
  
  • 1

测试mdb文件结果:

测试accdb文件结果图:

                                </div>