/*EXEC sp_addlinkedserver 'DExcelSource',
   'Jet 4.0',
   'Microsoft.Jet.OLEDB.4.0',
   'D:\千方百剂.xls',
   NULL,
   'Excel 5.0'
*/SELECT * FROM DExcelSource...千方百剂$
我在D盘里放了一个叫千方百剂的EXCEL里面有一个工作薄叫千方百剂
然后用以上的语句 查询的时候提示 
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。验证失败。
[OLE/DB provider returned message: 无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。]
这个是什么原因呢.
之前从未遇到过.

解决方案 »

  1.   

    http://www.51cto.com/art/200511/12670_1.htm
    希望这个对你有帮助!
      

  2.   

    Select * 
    From 
    OpenRowSet('MICROSOFT.JET.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=2;DataBase=d:\千方百剂.xls',[千方百剂$])
      

  3.   

    参考
    --excel数据导入SQL SERVER
    insert Test(col1,col2,col3)
    Select col1,col2,col3
    From 
    OpenRowSet('MICROSOFT.JET.OLEDB.4.0','EXCEL 8.0;HDR=YES;IMEX=2;DataBase=c:\test.xls',[sheet1$])
      

  4.   

    查询的时候要把这个excel文档先关闭
      

  5.   

    在SQL SERVER里查询Excel数据:
    -- ======================================================
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
    下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
    SELECT * 
    FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
      

  6.   

     这个的时候提示
    服务器: 消息 7314,级别 16,状态 1,行 1
    OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 不包含表 '千方百剂$'。该表可能不存在,或当前用户没有使用该表的权限。
    确定表格是有的.我在想是不是我EXCEL版本有问题.我装的是一个简化版的.有这种可能么