SQL Server 2012 使用 OPENROWSET 错误查询 Access 2007 数据

Roa*_*ast 5 sql-server ms-access ms-access-2007 sql-server-2012

我想从与 SQL Server 2012 实例位于同一台机器上的 Microsoft Access 2007 数据库查询 Management Studio 中的数据。我不想使用链接服务器来执行此操作,因为用户可以选择不同的 Access 数据库。我正在按照在technet和我读过的其他来源上找到的说明进行操作,这些说明OPENROWSET用作做我想做的事情的正确方法,但是当我在 Management Studio 中执行此操作时...

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\Users\oliver.klosoff\Desktop\New folder\41000-13-0085 Consolidated Killers LLC.mdb'; 'admin';'',tblTtlHrsFringes);

...我收到以下错误:

Msg 7302, Level 16, State 1, Line 1 Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

数据库没有为admin用户设置密码,admin用户有权限读取这个表。机器上安装了Access 2007 32bit,也就是64位,还有SQL Server实例。我相信 SQL Server 可以访问数据库文件,因为当我执行此操作时得到 1:

DECLARE @out INT
EXEC master.dbo.xp_fileexist 'C:\Users\oliver.klosoff\Desktop\New folder\41000-13-0085    Consolidated Killers LLC.mdb', @out OUTPUT
SELECT @out`
Run Code Online (Sandbox Code Playgroud)

有没有办法做我想要完成的事情?

Way*_*unn 0

假设您安装了“Northwind”示例(并在下面提到的文件夹中),以下命令会运行吗?

SELECT CustomerID, CompanyName
   FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
      'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';
      'admin';'',Customers);
GO
Run Code Online (Sandbox Code Playgroud)

不幸的是,自从上次重新映像以来我还没有重新安装 SQL Server