分享

SQL 查询语句-WHERE

 剩矿空钱 2019-03-17

按条件筛选 使用SQL关键词WHERE查询中的条件指定要满足什么标准信息,去掉不满足条件的数据(删除用户不要的数据)。 WHERE语句中可以有多个条件,条件之间可以用操作符AND 或者OR进行连接。 WHERE语句的语法结构如下:

SELECT 列字段名称 FROM [表名称$] WHERE 列字段名 运算符 值

运算符包含大于、小于、等于、不等于、大于或等于、小于或等于、IN、 BETWEEN、AND等 。

应用实例说明,还是昨天数据(为了更好的更新今天的文章,修改了一点数据),只筛选出2号仓的数据;再筛选出入库数量大于60的数据

源数据:

SQL 查询语句-WHERE

查询内容

只查询2号仓的数据:

SQL 查询语句-WHERE

查询2号仓且入库数量大于60的数据:

SQL 查询语句-WHERE

代码运行的结果如下:

SQL 查询语句-WHERE

SQL 查询语句-WHERE

代码如下:

SQL 查询语句-WHERE

SQL 查询语句-WHERE

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好仓的的符号是英文输入法下的单引号,不是双引号。

点击关注可以更方便的查看Excel VBA的案例文章

私信 SQL 可以获取SQL代码的Excel文件

私信 视频 可以获取54集VBA入门视频

私信 VBA或 vba 可以获取文章中含VBA代码的Excel文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多