分享

如何在Excel中使用SQL语言?

 asaser 2022-07-24 发布于四川
NO.224-SQL
作者:看见星光
 微博:EXCELers / 知识星球:Excel

HI,大家好,我是星光,今天给大家聊一下如何在Excel中使用SQL语言。这个问题我们在「零基础学SQL in Excel」系列图文的第一章中有讲过,不过公众号后台总是收到类似的提问,所以就再集中说一次。

在Excel中使用SQL语言一般有三种方法▼

第一种是MS Query法,很少用,越来越少用,略。

第二种是OLE DB法,通常指的也就是透视表法。

操作演示动画如下..▼

图片

图文说明如下..▼

在Excel的【数据】选项卡下单击【现有链接】命令,在打开的对话框中,单击【浏览更多】,选取目标文件后,依次单击【确定】,得到如下图所示的【导入数据】对话框。

图片

单击【属性】按钮,打开【连接属性】对话框,切换到【定义】选项卡,即可在【命令文本】编辑栏中编写SQL语句,最后【确定】执行即可。如下图所示。

图片

……

这种方法通常搭配数据透视表(图一的显示方式选择【数据透视表】),此时SQL获取的记录集会自动成为透视表的缓存数据源。

此外也可以搭配Power Pivot(Excel版本2013及以上),勾选图一的【将此数据添加到数据模型】)。

对于没有VBA基础的朋友来说,通常推荐这种方法,只要会写SQL查询语句,就可以直接使用了。

不过——咱们的系列文章【零基础学SQL in Excel教程】主要是使用的第3种方法,也就是VBA+ADO+SQL。

和第2种方法相比较,该法的优点在系列文里已经说过很多了,其实最重要的就两点,掰手指头:

1
借助VBA,SQL语句可以使用变量,更加灵活自由。

2
借助ADO,对数据,SQL除了查询以外,还可以增改删。

对于VBA代码连面都不熟的朋友而言,是不是就不能使用VBA执行SQL了呢?

并不是。

VBA执行SQL语句有一个固定的套路。

哪怕你连VBA代码一句都看不懂也没关系,只要知道如何复制运行VBA代码(如何运行VBA代码?其实很简单),以及知道在哪里写入SQL语句就可以了。


复制以下VBA代码:其中第11行代码用于填写SQL语句,第14行代码指定存放SQL查询结果的工作表。

代码如看不全,可以左右拖动..▼

Sub ByADO_SQL() Dim cnADO As Object Dim rsADO As Object Dim strSQL As String Dim i As Long Set cnADO = CreateObject('ADODB.Connection') Set rsADO = CreateObject('ADODB.Recordset') cnADO.Open 'Provider=Microsoft.ACE.OLEDB.12.0;' _ & 'Extended Properties=Excel 12.0;' _ & 'Data Source=' & ThisWorkbook.FullName strSQL = 'SELECT * FROM [A$] ' '//此处写入SQL代码 Set rsADO = cnADO.Execute(strSQL) '//将工作表名称修改为实际放置查询数据的工作表名称▼ Worksheets('工作表名称').Select Cells.ClearContents For i = 0 To rsADO.Fields.Count - 1 Cells(1, i + 1) = rsADO.Fields(i).Name Next i Range('A2').CopyFromRecordset rsADO rsADO.Close cnADO.Close Set cnADO = Nothing Set rsADO = NothingEnd Sub

另外需要说明两点是……

在以上VBA代码中输入的SQL语句,双引号应改为单引号,这是因为SQL语句作为字符串,外围已经存在一对双引号了,内部就不能再使用双引号。

当处理的文件跨工作薄时,SQL语句的书写和OLE DB法稍有不同,具体请参考:Excel VBA+ADO+SQL入门教程004:表技巧的总结
需要系统学习Excel,却找不到优质教程?学习Excel的过程中遇到疑难问题,却找不到人及时作出解答?加入我的付费社群,和2600+学员共同精进Excel,学习+答疑都不再是问题……

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多