按要求筛选 运用SQL关键词WHERE查找中的要求指定要满足什么标准信息,去掉不满足要求的数据(删除用户不要的数据)。 WHERE语句中能够有多个要求,要求之间能够用操作符AND 或OR进行连接。 WHERE语句的语法结构如下:
SELECT 列字段名
叫作 FROM [表名
叫作$] WHERE 列字段名 运算符 值
运算符包括大于、少于、等于、不等于、大于或等于、少于或等于、IN、 BETWEEN、AND等 。
应用实例说明,还是昨天数据(为了更好的更新今天的文案,修改了一点数据),只筛选出2号仓的数据;再筛选出入库数量大于60的数据
源数据:
查找内容
只查找2号仓的数据:
查找2号仓且入库数量大于60的数据:
代码运行的结果如下:
代码如下:
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")
以上是
第1步,后期绑定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文件