在EXCEL中使用SQL语句查询
SQL语句在数据库使用中十分重要。
在EXCEL中可以不打开工作簿,就获取数据,对多工作簿操作很用,也很快。
对大量数据处理,比循环快很多,但是比词典方法还有点距离(可惜我还没有学会词典)。
对数据库编程,任何编程语言都要,都支持SQL语言。
借助VBA, 我们也可在EXCEL中使用它,也就是将EXCEL作为数据库
(EXCEL中对SQL功能稍有限制,如:删除数据等,但不影响我对它的推崇)
在斑竹的帮助下,对SQL在EXCEL有了一点点体会,拿出来和大家分享。
斑竹的SQL帮助文件:http://club.excelhome.net/thread-65664-1-1.html
标准的EXCEL中SQL使用见附件的各个模块,ALT+F11就能看到了{:soso_e120:}
2012-04-24 最新更新 :标准语句、实例语句和解释互动, 结果直接显示,可自己修改语句。
EXCEL2003版本: <ignore_js_op>
EXCEL中的SQL学习总结-for 2003-20120424.rar (30.28 KB, 下载次数: 4765)
点击文件名下载附件
EXCEL2007版本: <ignore_js_op>
EXCEL中的SQL学习总结-for 2007-20120424.rar (41.11 KB, 下载次数: 7480)
点击文件名下载附件
'在Excel中使用SQL语句总结-1: '************************************ 标准SQL查找代码: *********************************************************
Sub SQL_Excel_2003_2007() 'On Error Resume Next '如果出现错误,忽略,然后执行下一行代码。
Application.ScreenUpdating = False '关闭屏幕刷新,成对出现,提高速度
Application.DisplayAlerts = False '关闭提示,,成对出现,避免出现提示框 '--------------------------------------- 参数声明部分 ------------------- ------------------- ------------------- Dim cnn, SQL$ '定义数据库连接和SQL语句
Set cnn = CreateObject("adodb.connection") '创建数据库连接
Set rs = CreateObject("adodb.recordset") '创建一个数据集保存数据 '--------------------------------------- 设置数据库连接 ------------------- ------------------- ------------------- cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName '将EXCEL文件作为数据库连接,实际并不打开EXCEL,
'Excel2003版本:cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.Path & "\数据表.xls"
'Excel2007版本:cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.Path & "\数据表.xlsx"
'带参数的连接字符串:cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;HDR=yes;IMEX=2';data source=" & ThisWorkbook.FullName
' HDR=Yes 代表 Excel 档中的工作表第一行是标题栏,标题只能是一行,不能使多行,或者合并的单元格。
' HDR=no 工作表第一行就是数据了,沒有标题栏,不使用栏位,则栏位就以f代表,第一列列名就是:f1,第二列列名:f2
' IMEX 汇入模式 0 只读 1 只写 2 可读写
' 当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
' 当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
' 当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。
'Data Source 存储查询数据来源的工作薄名称,数据库路径为:数据表.xls 或本表:& ThisWorkbook.FullName '--------------------------------------- 设置SQL语句 ------------------- ------------------- ------------------- SQL = "select * from [数据表_1$A1:G100] where 姓名='马拉多纳'" '在Sheet1表内查找列名为:姓名 中所有:马拉多纳 的数据。
'[XXX$A2:G100]的中括号和$为特别数据表标示符,XXX为Sheet名,A2:G100是选取的区域。
'SQL语句是一个字符串,双引号开头和结尾,列名两边无单引号,表示一个字符串:‘马拉多纳’,要用单引号扩上,数字就不用了。
'Nu=36: AA="马拉多纳": set Sh=Sheet1: SQL = "select * from [" & Sh.name & “$] where 姓名=‘” & AA & “’ and 年龄=Nu" '--------------------------------------- SQL结果处理 ------------------- ------------------- ------------------- Set rs = cnn.Execute(SQL) '将SQL语句获得的数据传递给数据集
Sheets("结果").Cells.ClearContents '清理保存数据的区域
Sheets("结果").Range("a2").CopyFromRecordset rs '将数据集粘贴到Excel中,左上角为A2,无列名。
'Sheets("结果").Range("b2").CopyFromRecordset cnn.Execute(SQL) '可以不声明Y,直接使用 cnn.Close '关闭数据库连接
Set cnn = Nothing '将CNN从内存中删除。
'--------------------------------------- ------------------------ ------------------- -------------------
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub '这就是最简单的EXCEL中SQL的应用 ,其他的都是SQL的运用了
转载自:http://club.excelhome.net/thread-859194-1-1.html, 感谢opiona的分享。
在EXCEL中使用SQL语句查询的更多相关文章
- 在Excel中使用SQL语句查询和筛选
本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQ ...
- Excel 中使用sql语句查询
将Excel连接Oracle数据库 Excel选项板中"数据"—"自其他来源"下拉菜单中有有个可以连接其它数据库的选项"来自数据连接向导"和 ...
- [转]在Excel中使用SQL语句实现精确查询
本文转自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html 今天在微博上看到@数据分析精选 分享的一篇文章,是关于<在Excel中使用SQ ...
- 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载
浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...
- EF Core中执行Sql语句查询操作之FromSql,ExecuteSqlCommand,SqlQuery
一.目前EF Core的版本为V2.1 相比较EF Core v1.0 目前已经增加了不少功能. EF Core除了常用的增删改模型操作,Sql语句在不少项目中是不能避免的. 在EF Core中上下文 ...
- MySQL中优化sql语句查询常用的30种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使 ...
- MySQL中优化sql语句查询常用的种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...
- 浅谈MySQL中优化sql语句查询常用的30种方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...
- Mysql 性能优化7【重要】sql语句的优化 浅谈MySQL中优化sql语句查询常用的30种方法(转)
原文链接 http://www.jb51.net/article/39221.htm 这篇文章大家都在转载,估计写的有条理吧,本人稍微做一下补充 1.对查询进行优化,应尽量避免全表扫描,首先应考虑 ...
随机推荐
- Mac安装最新tensorflow遇到的坑,记录下方便后人
之前其他mac电脑安装tensorflow时候一切顺利,一行命令sudo pip install tensorflow就高搞定了,但是今天在新mac上安装tensorflow时候出现了一个bug,搞了 ...
- CF1117A Best Subsegment
CF1117A Best Subsegment 乍一看好像很难,仔细想一下发现就是弱智题... 任意一段平均数显然不会超过最大的数,若只取最大数即可达到平均数为最大数. 于是只用取最长的一段连续的最大 ...
- Atocder ARC082 F-Sandglass 【思维题】*
Atocder ARC082 F-Sandglass Problem Statement We have a sandglass consisting of two bulbs, bulb A and ...
- 实用符号Alt+小键盘快输
键盘输入:①Word.写字板.QQ2011等,Alt+Unicode之十进制数:②记事簿.网页框.浏览器之地址栏.TM2009等,Alt+GBK之十进制数. 字符 Unicode 十进制数 GBK ...
- php中strstr、strchr、strrchr、substr、stristr
一.strstr 和 strcchr的区别 strstr 显示第一次找到,要查找的字符串,以及后面的字符串. strrchr 显示最后一次找到,要查找的字符串,以及后面的字符串. 二.strstr ...
- CSU1632Repeated Substrings(后缀数组/最长公共前缀)
题意就是求一个字符串的重复出现(出现次数>=2)的不同子串的个数. 标准解法是后缀数组.最长公共前缀的应用,对于样例aabaab,先将所有后缀排序: aab 3 aabaab 1 a ...
- UML中的几种关系(UML Relationships)
依赖(Dependency) 依赖可以理解为一个类A使用到了另一个类B,而这种使用关系是具有偶然性的.临时性的.非常弱的,但是B类的变化会影响到A:比如某人要过河,需要借用一条船,此时人与船之间的关系 ...
- C语言控制台窗体图形界面编程(八):鼠标事件
上次讲的是键盘事件,这次我们介绍鼠标事件. 以下先介绍下鼠标事件的结构体以及相关信息. typedef struct _MOUSE_EVENT_RECORD //鼠标事件结构体 { CO ...
- CAS原理分析
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁). 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度 ...
- [LeetCode系列]组合和枚举问题
给定一列数(未排序)和一个目标值, 找出所有可能的组合和等于目标值的组合, 数组中的数可以重复使用. 算法思路: 使用递归. 对数组排序, 从小到大; 令i = 起始下标(初始为0), 对于每一个数, ...