设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 把窗体数据导出到Excel(分别有新建和更新现有文件功能)

[复制链接]
跳转到指定楼层
1#
发表于 2013-11-8 09:31:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 smilingkiss 于 2013-11-8 19:55 编辑

受到本论坛大神的代码启发,在红尘如烟的函数模块的基础上,添加了一些功能,可以让导出数据的时候选择是新建一份excel文件,还是在已有的excel文件上更新,如果选择后者,则会在已有的文件上新增一个“new序号”的工作表,这功能应该比较实用,希望对大家有益!

但还是存在一个上次我提问的问题(一直没有解决,不知道其他朋友操作起来是不是也一样有这个问题),我自己操作的时候,里面窗体1的“导出窗体数据”按钮,第一次打开窗体执行没问题,如果不关闭窗体的情况下再执行,导出的excel文件就只有标题栏了,只有把窗体关闭了重新打开才可以正常执行了,请大家可以多多帮助,一起完善这个功能^_^


找到原因了:在执行模块/函数里面的rst之前,加多一句:rst.movefirst  
这样就可以了,之前的情况,大概是因为rst复制到excel后,指针默认还在记录集最后,所以再次执行的时候就会出现没有记录导出的情况了!

解决了个问题,哈哈,好开心,如果版主眷顾,希望给加个分,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2013-11-8 10:43:53 | 只看该作者
我一般是直接使用OLE对excel对象进行详细的控制
3#
 楼主| 发表于 2013-11-8 10:47:30 | 只看该作者
tmtony 发表于 2013-11-8 10:43
我一般是直接使用OLE对excel对象进行详细的控制

嘻嘻,管理员,可以详细指点一下吗^_^
例如这个例子,如果用OLE是怎么实现呢?愿闻其详啊!

点击这里给我发消息

4#
发表于 2013-11-8 10:54:40 | 只看该作者
导出Excel,使用excel.application
方法类似老汉这个
http://www.office-cn.net/forum.php?mod=viewthread&tid=69890
5#
 楼主| 发表于 2013-11-8 11:03:20 | 只看该作者
tmtony 发表于 2013-11-8 10:54
导出Excel,使用excel.application
方法类似老汉这个
http://www.office-cn.net/forum.php?mod=viewthread ...

谢谢管理员,你给的帖子,我已经参考过了,这样的话,通用性会不会没那么灵活?请问这两种方法的优缺点分别是什么呢?
另外,像我上传的例子,出现这种情况,能找到个中原因吗?你说代码不正常吗,也不是,刚打开窗体执行是没问题的,但第二次就剩下字段名了,真是莫名其妙呀!
还请管理员指点迷津啊
6#
 楼主| 发表于 2013-11-8 11:17:25 | 只看该作者
tmtony 发表于 2013-11-8 10:54
导出Excel,使用excel.application
方法类似老汉这个
http://www.office-cn.net/forum.php?mod=viewthread ...

对了,站长,用recordset直接导入excel,得出来的excel文件总会有“数据连接”提示的,能消除么?
7#
发表于 2013-11-8 11:38:17 | 只看该作者
他说的问题已经回复他了,他没有好好去看代码的,在导出之前他没有选数据的
8#
 楼主| 发表于 2013-11-8 11:51:08 | 只看该作者
leonshi 发表于 2013-11-8 11:38
他说的问题已经回复他了,他没有好好去看代码的,在导出之前他没有选数据的

那为什么第一次打开窗体的时候可以执行呢?另外,你试试在
    If rst.RecordCount = 0 Then
        MsgBox ("没有数据可导出!"), vbExclamation
        GoSub Exit_ExportToExcel
    End If

这段代码后面加一句:
msgbox rst.recordcount

执行过程一样是显示“7”的,证明rst不是空的
9#
 楼主| 发表于 2013-11-8 18:06:07 | 只看该作者
本帖最后由 smilingkiss 于 2013-11-8 18:11 编辑

学习研究中。。。
10#
发表于 2014-10-13 20:42:31 | 只看该作者
我运行了,还是有问题
Set objExcelQuery = objExcelNewSheet.QueryTables.Add(rst, objExcelNewSheet.Range("A1")) 报ADD失败
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-9 03:42 , Processed in 0.096812 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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