设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 如何在后台打开数据表,复制其记录粘到Excel中?

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-29 14:31:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 aydl1014 于 2011-1-29 17:22 编辑

窗体中数据是在ctgrid控件中显示的,代码是通过打开数据表,一行一行加载到ctgrid中的。现在需要把ctgrid(即那个数据表)中的数据导到excel中,如果还用ADO一行一行读出来写到excel中,会比较慢,能否默默打开数据表,复制其记录,打开指定的xls粘到指定的位置呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2011-1-30 12:02:36 | 只看该作者
可在导出excel时,做个隐藏的数据表窗体,复制 粘贴到excel.不过格式不可控
3#
 楼主| 发表于 2011-1-31 16:58:43 | 只看该作者
本帖最后由 aydl1014 于 2011-1-31 19:07 编辑

这样是不是不能指定粘到哪个sheet,从哪一个单元格开始粘贴呀
4#
 楼主| 发表于 2011-1-31 19:40:01 | 只看该作者
本帖最后由 todaynew 于 2011-1-31 20:48 编辑

通过研究以往的例子,终于成功了,现将代码分享如下:

    Dim Rst As New ADODB.Recordset
    Rst.Open "qry_SalesSum", CurrentProject.Connection, adOpenDynamic, adLockOptimistic

    Dim xlApp As Excel.Application
    Dim xlSheet As Worksheet
   
    Set xlApp = New Excel.Application
    Set xlSheet = xlApp.Workbooks.Open(CurrentProject.Path & "\报表.xls").Worksheets("ysData")
    xlApp.Visible = True

    xlSheet.Range("A2").CopyFromRecordset Rst

评分

参与人数 1经验 +10 收起 理由
todaynew + 10 一个值得学习的很好方法

查看全部评分

5#
发表于 2011-1-31 20:47:34 | 只看该作者
本帖最后由 todaynew 于 2011-1-31 21:29 编辑

支持!
CopyFromRecordset绝对代表先进生产力的发展方向。

aydl1014 同志继续研究一下,是否能将字段名一并copy到Excel中(指不用循环读Rst.Fields(i).Name的方法)。我想这样的话,就可以产生导出到Excel的第四种方法了。

6#
 楼主| 发表于 2011-1-31 21:39:53 | 只看该作者
本帖最后由 aydl1014 于 2011-1-31 21:40 编辑

导入字段名,可以参照下面代码

ThisWorkbook.Worksheets("客户表").Range("A1:B1").Value = Array("CustomerCode", "Corparation")
7#
发表于 2011-2-1 06:45:38 | 只看该作者
aydl1014 发表于 2011-1-31 21:39
导入字段名,可以参照下面代码

ThisWorkbook.Worksheets("客户表").Range("A1:B1").Value = Array("Cust ...

这个办法代表落后生产力,还不如Rst.Fields(i).Name循环获得,呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 11:10 , Processed in 0.117094 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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