在工作表中查找数据(工作表数据查询时)
大家好,我们继续讲解VBA数据库解决方案,今日讲解第53讲内容:工作表查询时,类似于筛选功能的LIKE和NOT LIKE 的应用。大家在工作的时候,利用EXCEL操作,筛选是必不可少的工具之一。例如我们可以筛选以某个字符开头的数据,或者筛选不以某个字符开始的数据,那么这个功能如何在ADO连接EXCEL进行查询时实现呢?
实例讲解,我们看下面的数据:
我们要筛选出以W开始的生产厂的数组和不是以W开始的数据。如何实现呢?
下面看我给出的代码:
Sub mynzRecords_53() '第53讲 工作表数据查询时,类似筛选功能LIKE和NOT LIKE的应用.
Dim cnADO, rsADO As Object
Dim strPath, strSQL1, strSQL2, strSQL3, strSQL4 As String
Worksheets("53").Select
Cells.ClearContents
Set cnADO = CreateObject("ADODB.Connection")
Set rsADO = CreateObject("ADODB.Recordset")
strPath = ThisWorkbook.FullName
cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=yes;imex=1';data source=" & strPath
strSQL1 = "select 型号,生产厂,供应商,数量 from [数据$] WHERE 生产厂 Like 'W%'"
arr = Array("型号", "生产厂", "供应商", "数量")
[a1:d1] = arr
[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset cnADO.Execute(strSQL1)
strSQL2 = "select 型号,生产厂,供应商,数量 from [数据$] WHERE 生产厂 NOT Like 'W%'"
[a65536].End(xlUp).Offset(2, 0).CopyFromRecordset cnADO.Execute(strSQL2)
cnADO.Close
Set cnADO = Nothing
Set rsADO = Nothing
End Sub
代码截图:
代码解释:
1 strSQL1 = "select 型号,生产厂,供应商,数量 from [数据$] WHERE 生产厂 Like 'W%'"
这句的解释是要查出以W开始的生产厂的记录。大家要注意这种写法。注意的是这种写法要特别留意。要记住代码尽可能不要录入,要以拷贝为主,然后再做必要的修正。
2 strSQL2 = "select 型号,生产厂,供应商,数量 from [数据$] WHERE 生产厂 NOT Like 'W%'"
这句的解释是要查出不是以W开始的生产厂的记录。这里用的是NOT LIKE 语句。也是一种SQL语句的固定用法。
我最近在讲各种这样的连接啊,查询结构啊,大家要注意我的语句写法,如果语句不对是得不到正确结果的。我的系列文章在讲我的经验,甚至代码中也有工作实例的影子。要学写代码的经验,我们的工作要以实用为主,不是学术的研究。
下面看代码的运行:
今日内容回向:
1 如何实现工作表的筛选功能?
2 LIKEN 和 NOT LIKE 的语法是怎么样的?
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com