第一句子大全,网罗天下好句子,好文章尽在本站!

SQL语句实现模糊查询功能

时间:2023-01-31

在上一讲中,我们实现了利用ADO快速查找的功能,今日我们实现工作表中模糊查找的功能

友情提示:本文共有 845 个字,阅读大概需要 2 分钟。

大家好,今日继续讲解VBA数据库解决方案,今日讲解的内容是:利用ADO,实现模糊查询。在上一讲中,我们实现了利用ADO快速查找的功能,今日我们实现工作表中模糊查找的功能。我们仍是利用上一讲的数据实现, 在“两表查询数据”的工作表中有如下数据:

我们注意到其中型号和生产厂家的数据有些是混的,这就给我们利用上讲的内容造成了不便,那么这个时候就要利用模糊查找了,如下的数据:

我们需要在“两表查询数据”中A列+B列的内容中找到上述表格中A列的对应的型号,怎么处理呢?

我们看下面的代码:

Sub mynzexcels_8()

"第39讲,利用ADO,实现模糊查询

Dim cnADO, rsADO As Object

Dim strPath, strTable, strSQL As String

Set cnADO = CreateObject("ADODB.Connection")

Sheets("Sheet5").Activate

"建立一个ADO的连接

strPath = ThisWorkbook.FullName

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

i = 2

Do While Cells(i, 1) <> ""

Cells(i, 1).Select

Cells(i, 3) = "": Cells(i, 4) = "": Cells(i, 5) = ""

"这里只是提出F3,F3,F5的数据

strSQL = "select F3,F4,F5 from [两表查询数据$] where F1&F2 Like "%" & Cells(i, 1) & "%""

Set rsADO = New ADODB.Recordset

rsADO.Open strSQL, cnADO, 1, 3

If rsADO.RecordCount <= 0 Then

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

Else

If rsADO.RecordCount = 1 Then

Cells(i, 3).CopyFromRecordset rsADO

Else

For TT = 1 To rsADO.RecordCount - 1

Rows(i + TT & ":" & i + TT).Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Cells(i + TT, 1) = Cells(i + TT - 1, 1): Cells(i + TT, 2) = Cells(i + TT - 1, 2)

Next

Cells(i, 3).CopyFromRecordset rsADO

i = i + TT - 1

End If

End If

rsADO.Close

Set rsADO = Nothing

i = i + 1

Loop

Set cnADO = Nothing

End Sub

代码截图:

代码讲解:

1 strSQL = "select F3,F4,F5 from [两表查询数据$] where F1&F2 Like "%" & Cells(i, 1) & "%"" 这句SQL语句就是实现了从“两表查询数据”的工作表数据中找到类似于Cells(i, 1)内容的记录,大家要注意的这种SQL语句的写法,是like +% %的组合。

2 If rsADO.RecordCount = 1 Then

Cells(i, 3).CopyFromRecordset rsADO

如果仅为1条记录,那么就直接拷贝。

3 For TT = 1 To rsADO.RecordCount - 1

Rows(i + TT & ":" & i + TT).Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Cells(i + TT, 1) = Cells(i + TT - 1, 1): Cells(i + TT, 2) = Cells(i + TT - 1, 2)

Next

Cells(i, 3).CopyFromRecordset rsADO

i = i + TT - 1

End If

如果是多条记录,那么需要在原查询记录的下面插入行来填入查询的结果,上述代码就是完成了这个目的。

下面我们看代码的运行结果:

今日内容回向:

1 ADO如何实现模糊查找?

2 上述讲解中的SQL语句是否明白呢?

本文如果对你有帮助,请点赞收藏《SQL语句实现模糊查询功能》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
《安家》徐文昌:但是不要问你的未来 句子的模糊性

《安家》徐文昌:但是不要问你的未来 句子的模糊性

由《安家》主演的孙俪现在正在播出,这部写实的电视连续剧在播出前就吸引了无数人的注意。现在更新到第五集,无论是收视率还是话题热度,在播出的新剧中,都有很大的优势。当然,除了孙俪、罗晋、海清等演员个人流量...

2022-11-23 #经典句子

朋友圈中看透了爱情的凄美句子 模糊了多少人的双眼

朋友圈中看透了爱情的凄美句子 模糊了多少人的双眼

一、究竟是你变了,还是我变了,亦或是我们都变得陌生了。二、爱你时,你就是我的全世界,不爱你时,我的世界没有你。三、曾经是多么的可笑,多么的幼稚,居然相信有情饮饱。四、因为爱你,我活成了你的老妈子,倾尽...

2022-11-19 #经典句子

笑到模糊的沙雕憨憨句子来了 赶走你的坏情绪!

笑到模糊的沙雕憨憨句子来了 赶走你的坏情绪!

看鞠婧祥一口面包嚼33下被夸,我也学着嚼这么多下,我妈骂我不想吃就滚一边去。Ju Jingyi is praised for eating bread,so I imitated her. then my mom scolded me to go away If I don"t want to eat.如果惹到别人了,就从自己身上找找缺点,确保下回还能...

2023-01-12 #经典句子

深入人心的唯美句子 唯美经典 模糊了双眼!

深入人心的唯美句子 唯美经典 模糊了双眼!

1、若,红尘如梦,灯火阑珊的守候,算不算傻,承诺一生的相伴,会不会在?2、她教会了我微笑,他教会了我珍惜,又是谁教会了我遗忘?3、我想我可以习惯一个人生活,我想我可以假装不曾爱过。4、最可怕的他说好爱好爱你,...

2023-01-12 #经典句子

时候发朋友圈的正能量句子:沉默像首悲伤的歌 捂上视线却模糊了

时候发朋友圈的正能量句子:沉默像首悲伤的歌 捂上视线却模糊了

1. 完美的故事,却化作眼泪为结局。2. 那些事情我不想在想,也不想回忆,因为那触动了我的伤口3. 沉默像首悲伤的歌,捂上视线却模糊了。4. 我的苦衷,你不懂。我的快乐,你更不会懂5. 一个简单的旋律,总是勾起一段不简单...

2023-01-31 #经典句子

十分经典的爱情句子 字字诛心 模糊了双眼!

十分经典的爱情句子 字字诛心 模糊了双眼!

一、我会为一对被传为美谈的“千年知己”而惊叹,无关风月,只关心灵,这种缘分不是所有人都能够拥有,有的人一辈子也等候不来知晓高山流水的知音。而于你,我想此生再难忘记,只因你是我今生最美的相遇。二、爱情不...

2023-01-22 #经典句子

很现实的人生励志语录句子 感动无数人 模糊了双眼!

很现实的人生励志语录句子 感动无数人 模糊了双眼!

一、牵着你的手,就象左手牵右手没感觉,但砍下去也会疼!二、你是我生命里最好的遇见,也是光阴里我一直都在等的那个人。三、那年的誓言依稀在耳边回响,一场离别风,吹散了情缘。是否,少了多事春秋,我们会一起静...

2023-01-12 #经典句子

看一眼就觉得相见恨晚的句子 发朋友圈获赞无数 模糊了双眼!

看一眼就觉得相见恨晚的句子 发朋友圈获赞无数 模糊了双眼!

1、习惯了寂寞之后,一个人就是全世界。2、终于明白,有些路,只能一个人走。那些邀约好同行的人,一起相伴雨季,走过年华,但有一天终究会在某个渡口离散。红尘陌上,独自行走,绿萝拂过衣襟,青云打湿诺言。山和水...

2022-12-24 #经典句子

孤独迷茫的励志句子 句句精辟透彻 模糊了双眼!

孤独迷茫的励志句子 句句精辟透彻 模糊了双眼!

一、我们刚刚深情的拥抱,转过身后,你却依偎在别人的怀里。二、当你在乎的人开始逗别人笑的时候你就真的输了。对一个人的爱累到什么程度才会心甘情愿的去放弃。三、千里烟云,是谁留下的孤寂年华?谁人在他的尽头画...

2023-07-19 #经典句子