我用的是
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=c:\temp1.xls','123$')select * from jtjms..cp----------
服务器: 消息 7321,级别 16,状态 2,行 2
准备对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 执行查询时出错。
[OLE/DB provider returned message: 无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。]
OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' ICommandPrepare::Prepare returned 0x80040e14]。
啥意思呢,谁能帮详细解释下如何导出EXECL

解决方案 »

  1.   

    --> 注意:Excel2007的扩展名是xlsx,版本是12.0
    insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=YES;DATABASE=c:\temp1.xlsx','[123$]') select * from jtjms..cp
      

  2.   

    执行楼上代码出以下错误:
    服务器: 消息 7321,级别 16,状态 2,行 1
    准备对 OLE DB 提供程序 'Microsoft.ACE.OLEDB.12.0' 执行查询时出错。
    [OLE/DB provider returned message: 无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。]
    OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.ACE.OLEDB.12.0' ICommandPrepare::Prepare returned 0x80040e14]。
      

  3.   

    会不会是提供的驱动不正确?
    --'Microsoft.Jet.OLEDB.4.0'
      

  4.   

    如何导出呢,我SQL里记录为10万条,导出EXECL2000只能导出16384条,execl2007支持100万条,可我如何导成2007呢
      

  5.   

    只要改变连接字符串为 
    'Provider=Microsoft.ACE.OLEDB.12.0;Password="";Data Source='+FileName+';Extended Properties=''Excel 12.0;IMEX=1;HDR=YES'';Persist Security Info=True;' 
    就可以实现对2007的读取。