SELECT * INTO H
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.8.0',
'Data Source="C:\H.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...sheet1
提示错误:
消息 7403,级别 16,状态 1,第 2 行
尚未注册 OLE DB 访问接口 "Microsoft.Jet.OLEDB.8.0"。
系统已装OFFICE2007,整两天也没整明白,请大虾帮看下该怎么改
10 个解决方案
#1
对于不同的Excel版本,有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。
Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。
你用这个试下:
Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。
你用这个试下:
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\1.xlsx')...[Sheet1$]
#2
消息 7308,级别 16,状态 1,第 1 行
因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
还是不行
因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
还是不行
#3
现在怎么跟以前不一样了,以前导过可以的,现在不知哪变了一样
#4
select * from OpenDataSource('Microsoft.ACE.OLEDB.8.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=F:\H.xlsx')...[Sheet1$]
改成8.0提示:
消息 7403,级别 16,状态 1,第 1 行
尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.8.0"。
'Excel 12.0;HDR=Yes;IMEX=1;Database=F:\H.xlsx')...[Sheet1$]
改成8.0提示:
消息 7403,级别 16,状态 1,第 1 行
尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.8.0"。
#5
下载安装AccessDatabaseEngine2007驱动.
地址 http://www.microsoft.com/zh-cn/download/details.aspx?id=23734
再执行我#1的SQL
地址 http://www.microsoft.com/zh-cn/download/details.aspx?id=23734
再执行我#1的SQL
#6
我不知哪里出问题,OFFICE2007我重装3次了,这次装完后,任务管理器的进程里还是显示“EXCEL.EXE *32",下载安装了AccessDatabaseEngine2007驱动,运行下面的命令还是不成功
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
INSERT INTO H
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=C:\H.xlsx')...[Sheet1$]
(表H现 已提前删除。可以直接建表H并插入值,也可以先建好表H再插入值,其实H只有一列数据)
--------------------------------------------------------------------------------------
提示:
消息 7308,级别 16,状态 1,第 3 行
因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
INSERT INTO H
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=C:\H.xlsx')...[Sheet1$]
(表H现 已提前删除。可以直接建表H并插入值,也可以先建好表H再插入值,其实H只有一列数据)
--------------------------------------------------------------------------------------
提示:
消息 7308,级别 16,状态 1,第 3 行
因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
#7
SELECT @@VERSION 看看你的 sql server 是 32 还是 64 位的,ACE 必须匹配这个
#8
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
#9
是64位的吧,任务管理器进程里显示MSACCESS.EXE*32,请教大虾,这得怎么改
#10
是不是OFFICE是32位的而SQL是64位的不能导?
#1
对于不同的Excel版本,有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。
Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。
你用这个试下:
Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。
你用这个试下:
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\1.xlsx')...[Sheet1$]
#2
消息 7308,级别 16,状态 1,第 1 行
因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
还是不行
因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
还是不行
#3
现在怎么跟以前不一样了,以前导过可以的,现在不知哪变了一样
#4
select * from OpenDataSource('Microsoft.ACE.OLEDB.8.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=F:\H.xlsx')...[Sheet1$]
改成8.0提示:
消息 7403,级别 16,状态 1,第 1 行
尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.8.0"。
'Excel 12.0;HDR=Yes;IMEX=1;Database=F:\H.xlsx')...[Sheet1$]
改成8.0提示:
消息 7403,级别 16,状态 1,第 1 行
尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.8.0"。
#5
下载安装AccessDatabaseEngine2007驱动.
地址 http://www.microsoft.com/zh-cn/download/details.aspx?id=23734
再执行我#1的SQL
地址 http://www.microsoft.com/zh-cn/download/details.aspx?id=23734
再执行我#1的SQL
#6
我不知哪里出问题,OFFICE2007我重装3次了,这次装完后,任务管理器的进程里还是显示“EXCEL.EXE *32",下载安装了AccessDatabaseEngine2007驱动,运行下面的命令还是不成功
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
INSERT INTO H
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=C:\H.xlsx')...[Sheet1$]
(表H现 已提前删除。可以直接建表H并插入值,也可以先建好表H再插入值,其实H只有一列数据)
--------------------------------------------------------------------------------------
提示:
消息 7308,级别 16,状态 1,第 3 行
因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC sp_MSSet_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
INSERT INTO H
select * from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;IMEX=1;Database=C:\H.xlsx')...[Sheet1$]
(表H现 已提前删除。可以直接建表H并插入值,也可以先建好表H再插入值,其实H只有一列数据)
--------------------------------------------------------------------------------------
提示:
消息 7308,级别 16,状态 1,第 3 行
因为 OLE DB 访问接口 'Microsoft.ACE.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
#7
SELECT @@VERSION 看看你的 sql server 是 32 还是 64 位的,ACE 必须匹配这个
#8
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
#9
是64位的吧,任务管理器进程里显示MSACCESS.EXE*32,请教大虾,这得怎么改
#10
是不是OFFICE是32位的而SQL是64位的不能导?