多个 like_大数据查询时,固定长度字符和多个起始字符汇总查询的实现

70f06bdf424611084f1cc097d7ba6836.png

大家好,我们继续讲解VBA数据库解决方案,今日讲解第54讲内容:工作表查询时,固定长度字符和多个起始字符汇总查询功能的实现。在上一讲的内容中,我们讲了类似于筛选功能的实现,今日内容和上讲比较复杂些,其一是固定长度的字符筛选,也就是说筛选的是具有固定长度的符号;其二,多个起始字符的查询,是指多个开始符号的字符。这种功能在工作表中是无法直接实现的,那么在ADO中是否可以实现呢?实例,我们有如下的数据:

3ae13d9cd3e6e0fd29e5edb4d15da43e.png

我们要得到的结果是生产厂具有5个字符的数据和以A,B,C,D开始的生产厂家数据,我们看代码该如何书写.下面看我给出的代码:

Sub mynzRecords_54() '第54讲 工作表查询时,固定长度字符和多个起始字符汇总查询功能的实现

Dim cnADO, rsADO As Object

Dim strPath, strSQL3, strSQL4 As String

Worksheets("54").Select

Cells.ClearContents

Set cnADO = CreateObject("ADODB.Connection")

strPath = ThisWorkbook.FullName

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

'固定长度字符

strSQL3 = "select 型号,生产厂,供应商,数量 from [数据$] WHERE 生产厂 Like '_____'" '此处是5个字符长度

arr = Array("型号", "生产厂", "供应商", "数量")

[a1:d1] = arr

[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset cnADO.Execute(strSQL3)

'多个起始字符汇总查询

strSQL4 = "select 型号,生产厂,供应商,数量 from [数据$] WHERE 生产厂 Like '[A,B,C,D]%'" '此处也可以用[A-D]% 的格式

[a65536].End(xlUp).Offset(2, 0).CopyFromRecordset cnADO.Execute(strSQL4)

cnADO.Close

Set cnADO = Nothing

End Sub

代码截图:

08dc1a5278a1ea6d0a718adb904244ee.png

代码的讲解:

1 strSQL3 = "select 型号,生产厂,供应商,数量 from [数据$] WHERE 生产厂 Like '_____'" '此处是5个字符长度

此句的SQL语句是实现5个字符长度的生产厂的查询,注意如果是以某字符开始的同样也可以把这个字符加到首位。

2 strSQL4 = "select 型号,生产厂,供应商,数量 from [数据$] WHERE 生产厂 Like '[A,B,C,D]%'" '此处也可以用[A-D]% 的格式。

此句的SQL语句是实现以A,B,C,D 开始的字符匹配查找,同样如果不是以A,B,C,D 开始的字符匹配查找,可以在前面加上NOT.

下面看代码的运行:

7f21b06d24541942854f8e97800098ed.png

5d0b76d25e849d52a648aedcbd8fdfbb.png

今日内容回向:

1 如何实现固定长度字符和多个起始字符汇总查询功能?

2 上述在代码讲解中我讲了两个扩展内容,读者可以自己测试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值