暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库查询中LIKE和NOT LIKE的应用

VBA语言専攻 2022-09-01
118
【分享成果,随喜正能量】没有人不会孤独,但要学会在孤独中成长,在平庸中出众。成长本来就是一个逐渐孤立无援的过程,你要努力强大起来,然后独当一面。。
  《VBA数据库解决方案》教程(10090845)是我推出的第二套教程,目前已经是第一版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:数据库查询中LIKE和NOT LIKE的应用
如果您VBA已经入门,可以根据自己的兴趣选择教程了,经典组合3,2,9,第3套字典教程是数据处理必备的,第2套数据库是专业数据处理的工具,第9套教程是实用的典型案例讲解。对于数据处理而言,如果您数据量不是很大,字典可以优先选择。教程提供的程序源码文件就如一座大型的代码库支持着大家的工作。同时还有实用的资料送给学员。
我推出的VBA工具系列系列共分两类:一类是容易些的YZ系列,一类是较难些的NZ系列,这些工具是大家学习VBA的好帮手,其中NZ系列工具还有专门版本资料提供给已按部就班学习完我所有教程的学员。

第五十三讲  工作表数据查询时,LIKE和NOT LIKE的应用

大家好,我们继续讲解VBA数据库解决方案,今日讲解第53讲内容:工作表查询时,类似于筛选功能的LIKE和NOT LIKE 的应用。大家在工作的时候,利用EXCEL操作,筛选是必不可少的工具之一。例如我们可以筛选以某个字符开头的数据,或者筛选不以某个字符开始的数据,那么这个功能如何在ADO连接EXCEL进行查询时实现呢?

1  应用场景的具体分析

实例讲解,我们看下面的数据:
我们要筛选出以W开始的生产厂的数组和不是以W开始的数据。如何实现呢?

2  ADO连接工作表中,LIKE和NOT LIKE的应用代码及代码解读

下面看我给出的代码:
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 的语法是怎么样的?



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





我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】人生于世,就得有点兴致,闲暇之时,或乐游山水、或尽享食味、或寄情岁时,它让我们的生活变得充盈。。


文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论