大家好,今日继续讲解VBA数据库解决方案,今日讲解第40讲:利用ADO实现同一文件的多个工作表精确查询.其实这讲的内容利用我之前讲解的知识点也可以自己完成.这里只是拿出来让大家再熟悉一下EXCEL的ADO连接,及RS多次打开记录集后的查询.

实例:在我的文件.xlsm中有两页"两表查询数据"和"查询数据",一些基础的数据在这两页文件中:如下截图:

同时我在某页工作表中存在如下数据,要在上述的两个工作表中查出对应的数据资料放在后面:

这个实例也是在工作中经常遇到的,如果扩展使用会更多。

下面看我给出代码:

Sub mynzexcels_40()

'第40讲,利用ADO,实现同一文件的确认查询

Dim cnADO, rsADO As Object

Dim strPath, strTable, strSQL As String

Dim SH As Worksheet

Set cnADO = CreateObject("ADODB.Connection")

'建立连接

strPath = ThisWorkbook.FullName

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath

i = 2

Do While Cells(i, 1) <> ""

WW = Cells(i, 1)

If InStr(WW, ":") > 0 Then WW = Left(WW, InStr(WW, ":") - 1)

For Each SH In Worksheets

If SH.Name = "两表查询数据" Or SH.Name = "查询数据" Then

strTable = "[" & SH.Name & "$]"

strSQL = "select F2,F3,F4,F5 from " & strTable & " where F1='" & WW & "'"

Set rsADO = New ADODB.Recordset

rsADO.Open strSQL, cnADO, 1, 3

If rsADO.EOF Then GoTo 200

If rsADO.RecordCount > 0 Then

Cells(i, 2).CopyFromRecordset cnADO.Execute(strSQL)

GoTo 100

End If

End If

200:

Next

100:

rsADO.Close

i = i + 1

Loop

cnADO.Close

Set cnADO = Nothing

Set rsADO = Nothing

End Sub

代码截图:

代码讲解:

1 WW = Cells(i, 1)

If InStr(WW, ":") > 0 Then WW = Left(WW, InStr(WW, ":") - 1)

此处我做了一个实例,就是如果在需要查找的数据中含有":"那么要取冒号之前的数据。这是非常实用的一个实例,大家要记住上面的代码。

2 For Each SH In Worksheets 这里使用了一个FOR EACH循环,遍历工作表。

3 If SH.Name = "两表查询数据" Or SH.Name = "查询数据" Then 由于我事先知道我要在两页工作表中查询,所以我精确的控制了两页的工作表名称

4 If rsADO.RecordCount > 0 Then

Cells(i, 2).CopyFromRecordset cnADO.Execute(strSQL)

GoTo 100

End If

上述代码作用:当存在这样的记录,即记录数大于0那么提取数据。

代码的运行:

备注:我写这讲的目的原想是能提高一下在很多的工作表中查询时能提高程序的运行速度,但我在几十个工作表中测试时发现运行的速度反而不如FIND的速度快,这里只是提供给大家一个方法吧。

今日内容回向:

1 如何实现利用ADO在多表中查询?

2 如果用FIND来编写上述代码该如何写呢?

mysql查询两个表中的不同数据_如何实现大数据在多工作表中精准查询相关推荐

  1. hive 如果表不存在则创建_从零开始学习大数据系列(四十七) Hive中数据的加载与导出...

    [本文大约1400字,阅读时间5~10分钟] 在<从零开始学习大数据系列(三十八) Hive中的数据库和表>和<从零开始学习大数据系列(四十二)Hive中的分区>文章中,我们已 ...

  2. anaconda在ubuntu中安装后没有_你的大数据平台中病毒了!!!记一次HDP安装后中dr.who病毒并修复的过程...

    有些事还是经历过了才知道"小心驶得万年船"的道理啊.最近笔者帮一个客户安装HDP2.6.5版本的大数据平台,最重要的是,这次安装的背景是生产环境的云平台迁移,不是普通的开发阶段或者 ...

  3. python人工智能大数据_人工智能及大数据中的Python

    2016年,Python取代Java成为高校中最受欢迎的语言.2018年三大语言榜单中,Python陆续登上了IEEE.PYPL排行榜单之首.薪酬调查结果显示,Python开发人员是收入最高的开发人员 ...

  4. Python+Excel系列:案例七:将一个工作薄的所有工作表批量复制到其他工作簿、将某个工作表的数据批量复制到其他工作簿的指定工作表中

    文章目录 将一个工作薄的所有工作表批量复制到其他工作簿 将某个工作表的数据批量复制到其他工作簿的指定工作表中 将一个工作薄的所有工作表批量复制到其他工作簿 import os #导入os模块 impo ...

  5. 2018年python工作好找吗-2018年最新数据:python、大数据、人工智能从业者薪资表...

    问一个很现实的问题,以你目前的薪资,多久能赚到100万? 在一线城市,年薪10万仅能饱腹,就算熬夜加班苦干10年达到100万,相信也所剩无几. 所以要想多赚钱,就要转变思路.勤奋努力,年薪30万并不是 ...

  6. 八折进行中 | 暌违一载,2018 中国大数据技术大会(BDTC)首轮讲师阵容震撼来袭!...

    暌违一载,今又相约.作为年度技术趋势与行业应用的风向标,2018 中国大数据技术大会(BDTC 2018)携主题"大数据新应用"再度强势来袭,稳踏技术时代浪潮,势将引爆今冬技术圈. ...

  7. “数据星河”系列活动—大数据产业中的商业模式创新沙龙共话新未来

    11● July ● 2019 北京 ▲ 沙龙现场 7月11日,数据星河系列活动--大数据产业中的商业模式创新沙龙顺利举行.在大数据强势赋能下,来自不同行业与领域的嘉宾就如何以模式创新迎接未来机遇与挑 ...

  8. “IBP在城市大脑项目中的应用”入选工信部2021年大数据产业发展试点示范项目名单

    9月1日,工业和信息化部公布了<2021年大数据产业发展试点示范项目名单>,浪潮云申报的"IBP在城市大脑项目中的应用"荣登榜单. "2021年大数据产业发展 ...

  9. mysql一样的查询在我本地很快但是线上很慢_MySQL大数据量分页查询方法及其优化...

    MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...

最新文章

  1. IntelliJ IDEA 快捷键终极大全,速度收藏!
  2. 独家 | 一个好的事件跟踪字典是什么样的?
  3. 51nod 1490: 多重游戏(树上博弈)
  4. beanutils工具类_16 个超级实用的 Java 工具类!
  5. Weak Pair HDU - 5877 树状数组+离散化+DFS遍历
  6. C# 串口接收1次数据会进入2次串口接收事件serialPort1_DataReceived,第2次进入时串口缓冲区为空
  7. 【原创】SharePoint中如何判断任务是否已经延期
  8. zookeeper和Kafka的关系
  9. excel checkbox mysql_ajax – checkbox – 使用jquery和mysql选中或取消选中
  10. 权限管理(1):简介
  11. syslog和syslog-ng详解
  12. java 服务端重复提交_java 服务器端验证重复提交
  13. Ansible 详细用法部署安装
  14. 开源组件 Ehcache中被曝严重漏洞,影响多款Jira产品
  15. 极客大学架构师训练营 系统架构 一致性哈希 Consistent Hashing 第五次作业
  16. 如何读取H264文件获得每一帧的数据(VsParserPro)
  17. 批改网作文提交时分析不出来_推荐一款免费英语写作批改软件
  18. 北京中波(AM-MW)无线广播发射频率/频道表 (转载)
  19. java基础-宇宙第一YWM:数组数算题目记录
  20. Android 学习笔记之二 Netspeed

热门文章

  1. Java 使用阿里巴巴 Dns Cache Manipulator
  2. Kafka : kafka errors.DisconnectException: null
  3. 【安全】导入本地linux用户到LDAP中
  4. 升级后重启造成fsck.ext3: Unable to resolve UUID
  5. Java关键字:final,static,this,super
  6. 数据量大了一定要分表,分库分表Sharding-JDBC入门与项目实战
  7. 小王,在 Java 中如何利用 redis 实现一个分布式锁服务呢???
  8. MySQL中的这17个关键问题,一定要弄清楚!
  9. php异步处理下载文件,php异步处理-上传文件
  10. Mac下安装virtualenvwrapper提示ERROR: No matching distribution found for pbr