设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

多表不重复数据提取(记录集)

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-9 23:08:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
       之前,坛友psj886提出如何多表合并数据,我当时回复说,方法很多,而且推荐使用数据透视表来做会相当简单,先把数据集中起来,然后再用透视表来做,详见:
       http://www.office-cn.net/forum.php?mod=viewthread&tid=95948&page=1#pid580077
       不过坛友对此似乎不太满意,小生诚惶诚恐,只好写一段VBA代码了,如果您喜欢不妨评下分吧,——负分就不用了,我想,这个帖子也没那么差吧?(*^__^*) 嘻嘻……)

       VBA的思路有两种,可以考虑高级筛选,不过需要使用循环语句,可能还要计算位置以便把数据集中在一起,当然这是思路而已,要实现起来并非易事。另一种就简单多了,那就是即将隆重登场的ADO(ActiveX Data Object)方式了。

       我们先假定如果用Access应该怎么处理?导入后联合查询。不错,那么如果我们能在Excel里模仿这个操作不就可以完成任务了(Roy沾沾自喜地说,“太厉害了,不得不佩服我自己了。”)?
       不过,和Access不同的是,Excel里要先创建相应的组件(数据连接和记录集),——如果不创建,则需要引用相关的库。还有一点,在Access里自带数据连接引擎,但在Excel里需要声明。
       好了,不说那么多,贴上代码先~~代码中有些参数恕(例如Cnn.open)我不解释了。——如果有时间,我将贴一篇相应教程上来供大家参考。
  1. Sub 数据集VBA()
  2. '先清空数据以便备用
  3. Sheets("数据集VBA").Range("A:B").Clear
  4. '定义组件和SQL语句
  5. Dim Cnn, Rst As Object
  6. Dim SSql As String
  7. '创建数据库连接和数据集
  8. Set Cnn = CreateObject("ADODB.connection")
  9. Set Rst = CreateObject("ADODB.recordset")
  10. '打开链接
  11. Cnn.Open "Provider=Microsoft.Jet.OleDb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
  12. '写入SQL语句。
  13. SSql = "select Article,描述 from [1$J2:K300]"
  14. '联合查询,为了提取不重复值,这里没有使用All谓词
  15. SSql = SSql & " Union select Article,描述 from [2$J2:K65536]"
  16. SSql = SSql & " Union select Article,描述 from [3$J2:K65536]"
  17. SSql = SSql & " Union select Article,描述 from [4$J2:K65536]"
  18. Cnn.Execute (SSql)
  19. '打开数据集
  20. Rst.Open SSql, Cnn, adOpenKeyset
  21. '复制数据集到相应的单元格
  22. Sheets("数据集VBA").Range("A2").CopyFromRecordset Rst
  23. '关闭数据集和链接
  24. Rst.Close
  25. Cnn.Close
  26. '释放内存
  27. Set Rst = Nothing
  28. Set Cnn = Nothing
  29. End Sub
复制代码
游客,如果您要查看本帖隐藏内容请回复

本帖子中包含更多资源

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

x

评分

参与人数 1经验 +30 收起 理由
pureshadow + 30 我很赞同

查看全部评分

本帖被以下淘专辑推荐:

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

点击这里给我发消息

60#
发表于 2022-4-10 20:42:17 | 只看该作者
谢谢 看看 学习一下

点击这里给我发消息

59#
发表于 2021-7-31 10:57:09 | 只看该作者
急需,学习学习
58#
发表于 2020-7-25 07:23:34 | 只看该作者
学习中,谢谢

点击这里给我发消息

57#
发表于 2020-4-24 15:57:41 | 只看该作者
学习
回复

使用道具 举报

点击这里给我发消息

56#
发表于 2019-9-12 15:21:20 | 只看该作者
感谢分享,能看懂你的代码就好了,继续学习,祝中秋快乐。
55#
发表于 2019-9-8 18:00:44 | 只看该作者
哦哦哦哦哦哦
54#
发表于 2019-1-8 21:36:06 | 只看该作者
看看。。。。
回复

使用道具 举报

53#
发表于 2018-3-11 03:35:10 | 只看该作者
学习学习,谢谢楼主分享
52#
发表于 2018-3-11 03:34:03 | 只看该作者
学习学习,谢谢楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-16 05:52 , Processed in 0.110919 second(s), 40 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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