SELECT * 
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 
'Data Source="e:\ceshi.xls";User ID=Admin;Password=Extended properties=Excel 5.0')...[sheet1$]消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。身份验证失败。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。

解决方案 »

  1.   

    在sql2005查询分析器中读取excel时遇到的几个问题,收集了网上所有资源,最后问题终于解决了,网上很多答案都是粘贴、复制形式的,所以在实际的环境中并不能用,相信有很多朋友和我遇到过一样的错误,为了避免后人犯同样的错误,现总结分享给大家:
    环境:
          系统:      windows7,
          数据库: sqlserver2005,
          office:     office2003SQL读取Excel常用的方式有:
    A.通过使用 OpenRowSet 和 OpenDataSource 函数
    B.通过使用链接服务器查询 Excelselect * from OpenRowSet
             ('Microsoft.Jet.OLEDB.4.0',
              'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\bb.xls',
               [Sheet1$]
              )
    一般报错:
    消息 7399,级别 16,状态 1,第 1 行
    链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
    消息 7303,级别 16,状态 1,第 1 行
    无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。select * from OpenDataSource
             ('Microsoft.Jet.OLEDB.4.0',
              'Data Source=E:\bb.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"'
              )...[Sheet1$]  
    一般报错:
    消息 7399,级别 16,状态 1,第 1 行
    链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
    消息 7303,级别 16,状态 1,第 1 行
    无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。SELECT * FROM OpenDataSource(
                                  'Microsoft.Jet.OLEDB.4.0',
                                  'Data Source=E:\bb.xls;User ID=Admin;Password=;Extended properties=Excel 5.0'
                                )...[Sheet1$]
    一般报错:
    消息 7308,级别 16,状态 1,第 1 行
    因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。declare @rc int
    declare @server nvarchar(128)
    declare @srvproduct nvarchar(128)
    declare @provider nvarchar(128)
    declare @datasrc nvarchar(4000)
    declare @location nvarchar(4000)
    declare @provstr nvarchar(4000)
    declare @catalog nvarchar(128)set @server = 'exceltosql'
    set @srvproduct = 'excel'
    set @provider = 'microsoft.jet.oledb.4.0'
    set @datasrc = 'e:\bb.xls'
    set @provstr = 'excel 8.0'
    exec @rc = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
    @datasrc, @location, @provstr, @catalog查询:
    select * from exceltosql...sheet1$报错:
    链接服务器"exceltosql"的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 返回了消息 "无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。"。
    消息 7399,级别 16,状态 1,第 1 行
    链接服务器 "exceltosql" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 报错。身份验证失败。
    消息 7303,级别 16,状态 1,第 1 行
    无法初始化链接服务器 "exceltosql" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。下面总结解决方式:
    1、在SQL Server 外围应用配置器中启用 OpenRowSet 和 OpenDataSource函数
    2、执行以上sql语句的数据库必须是本地数据库,如果为远程的数据库就会报上面的错误
    3、链接字符串 Extended Properties属性的内容要以分号间隔并用双引号括起来,sheet1$ 在括号外4、注意office的版本4.0是office2003,12.0是office2007的版本,看看是否装了驱动。5、最为关键的是要看sql server 版本号,是32位的还是64位的。x64位的sql server很多的office的驱动是不支持的。所以如果搞不成的话,不妨放到32位的sqlserver ,会有不少的收获
    原博客地址:http://wep2008.blogbus.com/logs/35390970.html64位下OPENROWSET运行出现错误在SSMS中执行:SELECT CustomerID, CompanyName
       FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
          'D:\nwind.mdb';
          'admin';'',Customers)消息7308,级别16,状态1,第1 行
    因为OLE DB 访问接口'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
      我的环境SQL Server 2008(64位)+windows2008r2(64位)解决办法:http://social.msdn.microsoft.com/Forums/en/vbgeneral/thread/58c4c61e-fa86-4809-bf7d-21bacb055d3e/下载最新的驱动原因是:在64SQL Engine中已经不提供jet.oledb.4.0的驱动了
    解决方法:下载一个ACE.Oledb.12.0 for X64位的驱动,并把连接字符串Microsoft.jet.Oledb.4.0 更改为 Microsoft.ACE.OLEDB.12.0
      

  2.   

    这个问题 我遇到过了 解决了 ~
    我并整理成博客 ,百分百好用 
    http://blog.csdn.net/fox123871/article/details/6701576我是我博客中第二种的解决方案解决的:
    修复:1、下载mdac_repair.zip,下载地址为 http://www.9box.net/upload/File/2009/07/07/20090707092734114297.zip2、将mdac_repair.zip解压缩到 C:\ mdac_repair 文件夹3、用鼠标右键点击 “mdac.inf”文件,点击 “安装”4、在接下来的安装过程中,如果提示 需要插入光盘或者找不到路径,这类提示无论出现几次,都一律将路径指向mdac_repair.zip解压缩后的文件夹,本文中为C:\ mdac_repair。5、可能会提示需要重新启动操作系统,可以点击否,不用重新启动操作系统; 重启之后即可正常访问使用了!
      

  3.   

    'Microsoft.Jet.OLEDB.4.0'是2007以下的驱动,2010用'Microsoft.ACE.OLEDB.12.0',
    Extended properties=Excel 12.0,