达永编程网

程序员技术分享与交流平台

ADO查询多条件数据的组合_多条件查询语句

【分享成果,随喜正能量】 允许不同,展现包容,做一个欢喜的人,去呈现生命的绽放;做一个深刻的人,去镌刻这生命的积淀和悠远。 ??

《VBA数据库解决方案》教程是我推出的第二套教程,目前已经是第一版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第37讲:ADO查询多条件数据的组合

第三十八讲 利用ADO实现多数据工作表间查询

大家好,今日继续讲解VBA数据库解决方案,今日内容是利用ADO实现两个工作表间的查询。在VBA的应用中,我一直在推崇的是VBA实现数据处理的自动化,也在不同的章节中讲如何利用VBA进行数据的自动处理。在数据处理中,查询一直是一大块的内容,在工作表中,我们可以应用的方法有:查找CTRL+F,筛选,定位,进而有工作表函数LOOKUP;如果您已经上手了VBA,查找就变的非常简单了,有多个方案可以利用,有单元格的直接判断,有FIND,FINDNEXT等系列的方案。今日我们讲的内容和以往有所不同,是利用ADO及SQL语句来实现的查找。

1 应用场景的具体分析

实例:在我的工作表中“两表查询数据”页中有若干数据,如下:

在另外的一页工作表中如如下数据:

现在要通过ADO,连接到EXCEL,实现在“两表查询数据”的工作表中查到上述数据并把后面的C列、E列、E列的查询结果复制到这页的相应位置。这个功能类似于我推出的一个VBA查找工具,这里我们要用ADO来实现这个要求。

2 ADO实现多数据工作表间查询的代码及代码解读

代码如下:

Sub mynz_38()

[代码见教程]

End Sub

代码截图:

代码讲解:

1) strSQL = "select F3,F4,F5 from [两表查询数据$] where F1='" & aa & "' and F2='" & bb & "'" 此处代码实现了在工作表“两表查询数据”中找到第一列等于aa,第二列等于bb的结合,同时返回的值是集合的第3,4,5列的数据

2) If rsADO.RecordCount > 0 Then

Sht1.Cells(i, 3).CopyFromRecordset rsADO

Else

MsgBox ("第" & i & "行数据,没有找到!")

End If

上述代码判断记录数为多少,如果有记录则返回有数据,如果没有记录那么返回的提示是没有找到。注意此处的代码如果改为rsADO.RecordCount =1是否可行?上述代码中如果返回值是多行记录会有什么不同呢?请读者思考

代码的运行:


本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm

今日内容回向:

1 在代码解释中的问题思考。

2 这个例子是非常有用的实例,还可以实现多数值的对应查找,代码将如何修正?

【分享成果,随喜正能量】 行走生活,总是要提醒自己,有信心才有希望,改变一些看法,凝聚一份信心,再一次、再一次的爱上生活,那么就在不知不觉中熬过许多创痛和苦涩。。 ???

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言