按条件筛选 使用SQL关键词WHERE查询中的条件指定要满足什么标准信息,去掉不满足条件的数据(删除用户不要的数据)。 WHERE语句中可以有多个条件,条件之间可以用操作符AND 或者OR进行连接。 WHERE语句的语法结构如下:
SELECT 列字段名称 FROM [表名称$] WHERE 列字段名 运算符 值
运算符包含大于、小于、等于、不等于、大于或等于、小于或等于、IN、 BETWEEN、AND等 。
应用实例说明,还是昨天数据(为了更好的更新今天的文章,修改了一点数据),只筛选出2号仓的数据;再筛选出入库数量大于60的数据
源数据:
![5dafb029dfb07f0bb964213e573b4908.png](https://i-blog.csdnimg.cn/blog_migrate/5a78b0953cebf2f242867faeb7787b38.jpeg)
查询内容
只查询2号仓的数据:
![91714a036ec361401379d14fc746548a.png](https://i-blog.csdnimg.cn/blog_migrate/0741eeeb6891449c530f80387e626f8b.jpeg)
查询2号仓且入库数量大于60的数据:
![988bd1f6e181f937dea19b90255390f6.png](https://i-blog.csdnimg.cn/blog_migrate/b3ebafc6b0c312a08999e9c71e9d7884.jpeg)
代码运行的结果如下:
![d4215a5a76d78710bf6b23ead23d71d2.gif](https://i-blog.csdnimg.cn/blog_migrate/9ff68583c40ebe98331944cf4b969234.gif)
![7bd5bfb50593628a2892ef198a1b566a.gif](https://i-blog.csdnimg.cn/blog_migrate/1d43aa1365e96b86179503d958336767.gif)
代码如下:
![beb5832c21fdd17f52fc535f39b3a70f.png](https://i-blog.csdnimg.cn/blog_migrate/52ec2d37de5475c08560e45481be2931.jpeg)
![a940a6827465c3d326d93fcede00b8d1.png](https://i-blog.csdnimg.cn/blog_migrate/ffcf99c548c4d8c437cf3645b2a2d9b7.jpeg)
Sub DoSql_Execute3() Dim cnn As Object, rst As Object Dim Mypath As String, Str_cnn As String, Sql As String Dim i As Long Set cnn = CreateObject("adodb.connection") '以上是第一步,后期绑定ADO Mypath = ThisWorkbook.FullName '以上获取当前工作簿的路径及名称 If Application.Version < 12 Then '格式为.xls,调用下述语句 Str_cnn = "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & Mypath Else '格式为.xlsx,调用下述语句 Str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & Mypath End If cnn.Open Str_cnn '判断一下当前Excel的版本,12.0以下使用“Provider=Microsoft.Jet.Oledb.4.0”,以上使用“Microsoft.ACE.OLEDB.12.0” '以上是第二步,建立链接 ' Sql = "SELECT 条码,仓位,货号,入库数量 FROM [商品信息目录$] where 仓位='2号仓' and 入库数量>60" 'Sql语句,查询商品信息目录表中条码,仓位,货号,入库数量 并且只筛选出仓位=2号仓的数据,并且入库的数量要大于60 [a2:d1000].ClearContents '清空[a2:c1000]区域内容 Range("a2").CopyFromRecordset cnn.Execute(Sql) 'Execute语句先执行SQL语句 '使用单元格对象的CopyFromRecordset方法将SQL查询到的内容复制到D2单元格为左上角的单元格区域 '以上是第三步,执行SQL语句并将数据读入表格指定区域 cnn.Close '关闭链接 Set cnn = Nothing '释放内存End Sub
代码解析
代码我放了一个例子,大部分的代码是一致的,只有SQL的句子不一样。需要注意的是:仓位='2号仓' 2好仓的的符号是英文输入法下的单引号,不是双引号。