使用SQL语句如何对Excel工作表数据进行查询

使用SQL语句如何对Excel工作表数据进行查询,第1张

SQL语句是一种标准的数据库语言,其可以在任何关系型数据库管理系统中使用。在 Excel 表格中,使用SQL语句可以实现对Excel工作表数据进行查询的 方法 。以下是我为您带来的关于使用SQL语句对Excel工作表数据进行查询,希望对您有所帮助。

使用SQL语句对Excel工作表数据进行查询

1、启动Excel并打开工作簿,在这个工作簿中,工作表Sheet1放置商品信息记录,如图1所示工作表Sheet2用于对商品记录进行查询,其结构如图2所示。

图1 放置商品信息记录的工作表

图2 用于商品记录查询的工作表

2、打开Visual Basic编辑器,在工程资源管理器中插入一个模块,在模块的“代码”窗口中输入如下程序代码:

Sub CheckData()

Dim cnn As ADODB.Connection '声明连接对象变量

Dim rs As ADODB.Recordset '声明记录集对象

Dim strSql As String

Dim str As String

On Error Resume Next

Set cnn=CreateObject("ADODB.Connection") '创建连接对象变量

Set rs=CreateObject("ADODB.Recordset") '创建记录集对象记录

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0"_&"Extended Properties=Excel 8.0"_&"Data Source="&ThisWorkbook.FullName

str=ActiveSheet.Range("B1").Value '获取当前单元格内容

strSql="Select*FROM[Sheet1$]Where商品like '%"&str&"%'"'创建数据筛选命令

rs.Open strSql,cnn,adOpenStatic

With ActiveSheet

.Range("A4:D100").ClearContents '清除单元格记录

.Range("A4").CopyFromRecordset rs '复制筛选结果

End With

rs.Close

cnn.Close

Set rs=Nothing

Set cnn=Nothing

End Sub

3、首先在Sheet2工作表中输入需要查询的商品名称,如图3所示。运行CheckData()过程,在Sheet2工作表中将列出查询结果,如图4所示。

图3 输入商品名称

图4 获得查询结果

使用SQL语句如何对Excel工作表数据进行查询相关 文章 :

★ excel2007使用sql语句查询的方法

★ excel2007写sql语句的教程

★ 如何将excel数据导入sql的方法

★ Excel2013使用教程基础

★ excel数据导入SQL数据库的教程

★ excel表导入sql数据库的教程

★ excel导入sqlserver数据库方法

★ 计算机英语

★ excel表格制作教程

var _hmt = _hmt || [](function() { var hm = document.createElement("script") hm.src = "https://hm.baidu.com/hm.js?fff14745aca9358ff875ff9aca1296b3" var s = document.getElementsByTagName("script")[0] s.parentNode.insertBefore(hm, s)})()

excel中使用sql语句,使用快捷键alt+d+d+d调出链接表的对话框,选择你要连接的表,然后确定,在编辑查询命令文本中要写sql语句,sql在excel中使用的是select语句。其实使用select主要是对数据的查询和汇总,汇总时输入聚合函数。总之有许多的知识需要学习,你可以在网上查阅一下sql

select语句的具体知识。

ALT+F11,打开VBE,插入一个模块,把以下代码复制进去:

Sub dosql(sql, a As Range)

Dim Conn As Object

Set Conn = CreateObject("ADODB.Connection")

Set rst = CreateObject("ADODB.Recordset")

PathStr = ThisWorkbook.FullName

Select Case Application.Version * 1

Case Is <= 11

strConn = "Provider=Microsoft.Jet.Oledb.4.0Extended Properties=excel 8.0Data source=" &PathStr

Case Is >= 12

strConn = "Provider=Microsoft.ACE.OLEDB.12.0Data Source=" &PathStr &"Extended Properties=""Excel 12.0HDR=YES"""""

End Select

Conn.Open strConn

Set rst = Conn.Execute(sql)

If VBA.InStr(sql, "select") >0 or VBA.InStr(sql, "Select") >0 Then

With a.Parent

For i = 0 To rst.fields.Count - 1

.Cells(1, a.Column + i).EntireColumn.ClearContents

.Cells(1, a.Column + i) = rst.fields(i).Name

Next

End With

a.Offset(1).CopyFromRecordset rst

For i = 0 To rst.fields.Count - 1

a.Parent.Cells(1, a.Column + i).EntireColumn.AutoFit

Next

End If

Conn.Close

End Sub

Public Sub t()

'sql = "这里写你的查询语句"

dosql sql, [E1]

End Sub

1、记得运行代码前要保存工作簿

2、查询语句中,表名是[工作表名$]这样的格式

3、dosql sql, [E1]中的E1,就是要放查询结果的区域左上角那个单元格。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9577180.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存