设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3275|回复: 4
打印 上一主题 下一主题

[ADO/DAO] ADO记录集如何导出到EXCEL

[复制链接]
跳转到指定楼层
1#
发表于 2012-12-28 22:20:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如题。
已有一个ADO记录集RS,如何新建一个EXCEL文件,并将它导出?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

5#
发表于 2012-12-29 11:23:11 | 只看该作者
aa.Sheets("sheet1").Cells(1, 1).CopyFromRecordset rs


这样更快捷!
4#
 楼主| 发表于 2012-12-29 08:16:21 | 只看该作者
我调试成功的代码如下:
  Dim rs As New ADODB.Recordset
  rs.CursorLocation = adUseClient
  rs.Open "select * from 订单明细", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

Dim RowData As Variant
Dim ColData As Variant
Dim RowTmp As Variant
Dim ColTmp As Variant
Dim R As Long
Dim C As Long
Dim aa As Excel.Workbook
Set MyXls = CreateObject("Excel.Application")
MyXls.Visible = True
Set aa = MyXls.Workbooks.Add
aa.Activate
aa.Sheets("sheet1").Cells(1, 1).CopyFromRecordset rs
      rs.Close
  Set rs = Nothing
3#
 楼主| 发表于 2012-12-29 08:10:06 | 只看该作者
谢谢roych
问题解决了。
2#
发表于 2012-12-28 22:33:53 | 只看该作者
用CreateObject来创建一个Excel组件(如有引用Excel库的话,则更方便些),然后将记录逐行写入。由于条件所限,暂不做实例。大体如下(【由于条件所限,暂未验证程序是否正确】):
Dim RowData As Variant
Dim ColData As Variant
Dim RowTmp As Variant
Dim ColTmp As Variant
Dim R As Long
Dim C As Long

On Error GoTo Eh
Set MyXls = CreateObject("Excel.Application")
MyXls.Visible = True
MyXls.Workbooks.Add
R = 0
For RowTmp = 0 To rs.RecordCount-1
     C = 64
     R = R + 1
   For ColTmp = 0 To rs.Fields.Count-1
         C = C + 1
     MyXlsp.Range(Chr(C) & R).Select
     MyXls.ActiveCell.Value = rs.fields(coltmp)
   Next
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 20:26 , Processed in 0.097024 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表