vba搜索java里面的sql_使用EXCEL VBA SQL语句实现一键查询

Excel经常用的功能大部分在软件界面体现了,还有一些不常用的在菜单里面也能找到。VBA宏代码相对Excel公式来说,用的频率要少些,但是VBA有他特殊的用途。

下面说一下VBA和SQL语句结合使用怎么实现表格数据一键查询,【注:SQL全称是结构化查询语言,是一种数据库查询和程序设计语言,对这方面感兴趣的朋友可以自己了解一下。】

举个例子:用EXCEL VBA SQL语句查询总成绩大于290分的学生

一、正常的操作步骤是:

1、用Excel打开表格,点击插入——数据透视图

ef3491cd6c8cb0a570102d0ec9178aa6.png

2、在数据透视图界面,选择行标签字段和求和项字段

7836cd01a0cfac18d2fea72438bd9709.png

12acc5216fa65549dd63e3a15da68d58.png

3、把行标签和求和项表格数据进行排序,选出成绩大于290的记录

用数据透视图功能操作很简便,除此之外用分类汇总功能也可以实现,只不过前者更方便些。

二、EXCEL VBA SQL语句实现表格数据的一键查询

1、用excel打开表格,按alt+F11打开VBA工程界面,在个人工作簿里新建模块,在模块的代码区域输入下面的代码

4033731af19fd22e565fdfa42d237052.png

2、根据实际需要在SQL变量区域输入自己想要的查询代码,保存,F5运行,注意[表名$]这种写法

fe3f2b3c5be0f5d5fdaf4299feb76e72.png

以上是用Excel VBA SQL语句实现了表格查询的一键自动化操作(按ALT+F8),在规则不经常变动的情况下使用很实用,以下是代码供复制粘贴。

Sub SQL查询()

Dim cnn As Object, rs As Object, SQL As String

Set cnn = CreateObject("adodb.connection") '创建数据库连接

cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ActiveWorkbook.FullName

Set rs = CreateObject("adodb.recordset") '创建一个数据集

SQL = "select 姓名,sum(成绩) from [原始数据$] group by 姓名 HAVING sum(成绩)>290" '设置SQL查询语句

Set rs = cnn.Execute(SQL) '执行查询

ActiveWorkbook.Worksheets(2).Cells.ClearContents

Dim i As Integer

For i = 1 To rs.Fields.Count

ActiveWorkbook.Worksheets(2).Cells(1, i) = rs.Fields(i - 1).Name '填写标题到表2

Next

ActiveWorkbook.Worksheets(2).Range("a2").CopyFromRecordset rs '复制记录集到表2

rs.Close

Set rs = Nothing

cnn.Close

Set cnn = Nothing

End Sub

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值