insert into bgongzi(a,b,c) select a,b,c from OpenDataSource('''+'Microsoft.Jet.OLEDB.4.0'+''','''+'Data Source="c:\aaaaaa.xls";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False'+''')...aaaaaaaa$';执行这个语句出来错误提示,
OLE DB 错误跟踪[non-interface error:ole db provider does not contain the table:providername='Microsoft.jet.oledb.4.0',TableName='aaaaaaaaa$']不知道为什么老是不行,不知道大家做导入的时候是怎么实现的.反正我用
ado的adoconnect.Execute()在中间写sql语句老是有错误.导入的目标数据库是access的时候还好,是sql server的时候错误就比较多,大家看看有什么办法没有?

解决方案 »

  1.   

    insert into bgongzi(a,b,c) select a,b,c from OpenDataSource('''+'Microsoft.Jet.OLEDB.4.0'+''','''+'Data Source="c:\aaaaaa.xls";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False'+''')...sheet1$'后面那个aaaaaa好像应该是sheet1吧
      

  2.   

    用sql server的导入/导出工具试试!
      

  3.   

    用sql server的导入/导出工具!是没有问题的.
    aaaaaaa是工作表的名称,sheet1$是默认的工作表.
      

  4.   

    那就晕了,没看出你的语句有别的问题。错误提示就是“你提供的这个数据源不包含这个table”
      

  5.   

    Str :='insert into bgongzi(a,b,c) select a,b,c from OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
      ''Data Source="c:\aaaaaa.xls";User ID=Admin;Password=;Extended properties=Excel 5.0'')...aaaaaaaa$';用上面的字符串试试,应该可以,我测试过!
      

  6.   

    请楼主,在调试程序时,跟踪,把Str的值取出来,
    然后在SQL查询分析器中试一下,可不可以,我怀疑是你的引号可能加错的原因!
      

  7.   

    给Excel表名加个中括号试一试.[aaaaa$]
      

  8.   

    太奇怪了,真的太奇怪了,居然有一个xls文件能够导入,我复制了一份这个文件,然后改了个名字再导入就不行了.从来都没有碰到过。
      

  9.   

    自由界面和报表的完美解决方案!
    http://www.anylib.com
      

  10.   

    嗯,引用一个ClipBrd单元。然后代码执行前: ClipBoard.AsText:=AdoQuery1.SQL.Text;
    放到SQL查询分析器里执行,找问题。
      

  11.   

    发现问题了,c:\aaaaaa.xls要必须在服务器的c:\aaaaaa.xls路径有才能执行,不是xls表的问题,而是OpenDataSource只能识别路径在服务器上,但是怎么才能正确执行