CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  VBA

SQL SERVER 2000导出到Excel ,请看代码有什么错误?

楼主jobs002(Oh! Office)2006-03-20 15:28:20 在 VB / VBA 提问

Dim   cnExcel   As   New   ADODB.Connection  
          Dim   recExcel   As   New   ADODB.Recordset  
          cnExcel.ConnectionString   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   &   App.Path   &   "\Test.xls;"   &   "Extended   Properties=""Excel   8.0;HDR=Yes;IMEX=1"""  
          cnExcel.Open  
          cnExcel.Execute   ("select     A.*   into   [Sheet1$]     FROM   OPENROWSET('SQLOLEDB','myServer';'sa';'   ','SELECT   *   FROM   pubs.dbo.authors   ORDER   BY   au_lname,   au_fname')   as   A")         '''''''错误  
          cnExcel.Close  
          Set   cnExcel   =   Nothing  
          Set   recExcel   =   Nothing  
  提示错误from   子句有错误 问题点数:30、回复次数:14Top

1 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-20 15:40:45 得分 5

换个写法试试:  
   
          Dim   cn   As   New   ADODB.Connection  
          cn.ConnectionString   =   "Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=jtaf;Password=登陆密码;Initial   Catalog=sql里的数据库;Data   Source=sql服务器别名或IP"  
          cn.CursorLocation   =   adUseClient  
          cn.Open  
   
          cn.Execute("select   *   into   OpenRowSet('microsoft.jet.oledb.4.0','Excel   8.0;hdr=yes;database=c:\Test.xls;','select   *   from   [Sheet1$]')     from   table1")Top

2 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-20 15:53:12 得分 10

http://community.csdn.net/Expert/topic/4621/4621548.xml?temp=.5011255Top

3 楼jobs002(Oh! Office)回复于 2006-03-20 16:16:38 得分 0

那个帖子已经看完,我现在是把sql   server   2000的一个表导入到   Excel的一个工作表   ,使上面的反过程.Top

4 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-20 16:27:44 得分 0

现在是把sql   server   2000的一个表导入到   Excel的一个工作表    
  ---------------------------------  
  用1楼的代码可以的Top

5 楼nj_tanghua(晨风)回复于 2006-03-20 16:31:29 得分 5

openrowset   只能在SQL的连接上执行,'microsoft.jet.oledb.4.0'   不支持Top

6 楼jobs002(Oh! Office)回复于 2006-03-20 16:36:34 得分 0

那应该怎么处理???Top

7 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-20 16:51:23 得分 0

把连接Excel改为连到Sql,然后就可以用OpenRowset了,就是1楼的代码Top

8 楼jobs002(Oh! Office)回复于 2006-03-20 16:56:56 得分 0

谢谢了,我试试....,通过给分Top

9 楼jobs002(Oh! Office)回复于 2006-03-20 17:43:09 得分 0

cnExcel.Execute   "select   *   into   OpenRowSet('microsoft.jet.oledb.4.0','Excel   8.0;HDR=yes;database=c:\Test.xls;','select   *   from   [Sheet1$]')     from   employee   "  
  关键字OpenRowSet附近有错误Top

10 楼jobs002(Oh! Office)回复于 2006-03-20 19:07:33 得分 0

可能得使用bcp实用工具,以及存储过程xp_cmdShell,不过不知道faysky2()的方法对不对,顶一下.....Top

11 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-20 19:26:26 得分 5

上面的少写了表名称:  
   
  cnExcel.Execute   "select   *   into   sqlNewTable   OpenRowSet('microsoft.jet.oledb.4.0','Excel   8.0;HDR=yes;database=c:\Test.xls;','select   *   from   [Sheet1$]')     from   employee   "  
  Top

12 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-20 19:27:39 得分 5

另一种方法(odbc方法):  
  Private   Sub   Command1_Click()  
          Dim   cn   As   New   ADODB.Connection  
          cn.CursorLocation   =   adUseClient  
          cn.Open   "Provider=Microsoft.Jet.OLEDB.4.0;Persist   Security   Info=False;Data   Source="   &   App.Path   &   "\test.xls;Extended   Properties='Excel   8.0;HDR=Yes'"  
   
          cn.Execute   ("insert   INTO   [odbc;Driver={SQL   Server};"   &   _  
                  "Server=ljx;Database=test;"   &   _  
                  "UID=sa;PWD=].temp   "   &   _  
                  "select   *   FROM   [Sheet1$]")  
          cn.Close  
          Set   cn   =   Nothing  
  End   SubTop

13 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-20 19:29:40 得分 0

上面的少写了表名称:  
   
  cnExcel.Execute   "select   *   into   sqlNewTable   OpenRowSet('microsoft.jet.oledb.4.0','Excel   8.0;HDR=yes;database=c:\Test.xls;','select   *   from   [Sheet1$]')     from   employee   "  
  ------------------------------------  
  还是写错了,后面没有from   employee   ,from应该写到OpenRowSet前面来,这样:  
   
  cnExcel.Execute   "Select   *   Into   sqlNewTable   From   OpenRowSet('microsoft.jet.oledb.4.0','Excel   8.0;HDR=yes;database=c:\Test.xls;','Select   *   From   [Sheet1$]')Top

14 楼jobs002(Oh! Office)回复于 2006-03-20 20:02:06 得分 0

EXEC   master..xp_cmdshell   'bcp   Pubs.dbo.employee   out   c:\temp1.xls   -c   -q   -S   ServerName'  
  保存在了c盘,验证通过(SQL   SERVER   2000)  
  谢谢faysky2().....,明天揭帖.....Top

相关问题

  • Sql server 导出到Excel问题
  • vb中怎样从sql server 中导出数据到dbf,excel?
  • 关于如何导出SQL SERVER 的数据到Excel表??
  • 从Excel表格导出数据到SQL Server。
  • 在VB中怎样用ADO 从SQL Server 7.0中导出表到FoxPro、Access、Excel中
  • 如何实现把sql server数据库的某个表导出成excel文件?
  • 将SQL SERVER的表导出为EXCEL格式,用程序导,怎么导?
  • 关于从SQL Server中导出记录到Excel的问题(高手请进)
  • 从SQL SERVER数据库中,怎么把数据导出到EXCEL表中
  • EXCEL和SQL导入导出的问题

关键词

  • sql server 2000
  • excel
  • sql
  • server
  • cnexcel
  • 错误
  • 表
  • cn
  • server2000
  • dim

得分解答快速导航

  • 帖主:jobs002
  • faysky2
  • faysky2
  • nj_tanghua
  • faysky2
  • faysky2

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo