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插件SqlCel,这个插件在处理数据上面有很多可取之处,非常值得学习。
比如在Excel中有一个订单ID字段,这个字段总共有2千条记录,现在我们要查询这些订单对应的产品名称。
在Mysql数据库中有一张订单表里面存储了所有订单的详细信息。我们该怎样 *** 作才能最快速地查到每个订单的产品名称呢?
多数人的做法应该是把Excel中的数据导入到Mysql中,然后写一个SQL语句匹配订单表,然后把匹配结果再导出来。这种做法也是可以的,只是非常不方便,单是数据的导入可能就会遇到不少麻烦。用SqlCel处理这个问题就简单了
插件安装之后需要连接到Mysql数据库,点击“数据库连接”下的Mysql,输入连接信息。如下:
连接到数据库之后,点击“SQL查询”进入数据查询编辑器。
这个编辑器和我们平时使用的编辑器一样,可以高亮显示,智能提示,选取执行。同时它还有很多特别的地方,比如定义变量,引用变量、引用Excel单元格、指定数据的来源和去向等。这里我们要说的是它的一个函数RNGTOSTR,这个函数用来将Excel单元格的值转为字符串并拼接到SQL语句中。我们在编辑器中写SQL语句如下:
SELECT DISTINCT PRODUCT_NAME,PRODUCT_ID FROM ORDER_TABLE WHERE PRODUCT_ID IN ('rngtostr([Sheet1!A1:A1000],'\,',true)')
这样一个SQL语句就可以把每一个产品ID对应的产品名称查询到当前Excel中了。
这里面用到了一个函数rngtostr,放一张官网的截图看一下具体的用法
假设你的数据是D:\1.XLS,工作表是:Sheet1则连接串:strConn = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=D:\1.xlsExtended Properties=""Excel 8.0HDR=NOIMEX=1"""
查询语句:strRS = "select * from [Sheet1$]"
将序号列标题和实际的序号均作为数据,按照你的1~30号,来算,记录集的RecordCount的值应该是31,第一行实际上是你的标题列行,使用0~5作为记录集字段索引,以你的实际数据“1 小五 A 31 小小 B”为例,RS(0)的值为1,RS(1)的值为小五。。。。RS(5)的值为B
其他的语法和ACCESS的完全一致。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)