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

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

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

我们要得到的结果是生产厂具有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
代码截图:
大数据查询时,固定长度字符和多个起始字符汇总查询的实现

代码的讲解:
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.
下面看代码的运行:
大数据查询时,固定长度字符和多个起始字符汇总查询的实现

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

今日内容回向:
1 如何实现固定长度字符和多个起始字符汇总查询功能?
2 上述在代码讲解中我讲了两个扩展内容,读者可以自己测试 。

相关经验推荐