EXCEL的vba如何使用SQL
Admin | 2017-10-24 17:01:45 | 被阅次数 | 10947
在EXCEL的VBA中,可以使用SQL语句对电子表格进行查询。
一、前提条件
数据表的第一行必须为表头,即字段名。
比如
二、示例代码
Dim iCols
Dim cnn, SQL, rs '定义数据库连接和SQL语句<br />
Set cnn = CreateObject("adodb.connection") '创建数据库连接<br />
Set rs = CreateObject("adodb.recordset") '创建一个数据集保存数据<br />
cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=excel 8.0;Data Source=E:\Excel研究VBA\Excel使用SQL示例.xls"
SQL = "select * from [Sheet1$] where 姓名='李跃' and 班级 <> 1"
'SQL = "select * from [Sheet1$] where 姓名 like '%龙%'"
'SQL = "select count(*) as num from [Sheet1$] where 姓名 like '%龙%'"
Set rs = cnn.Execute(SQL) '将SQL语句获得的数据传递给数据集<br />
Sheet2.Cells.ClearContents
'Sheet2.Range("a1").CopyFromRecordset rs
'下面的循环功能是在第一行填充字段名称
For iCols = 0 To rs.Fields.Count - 1
Sheet2.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
Next
Sheet2.Range("A2").CopyFromRecordset rs
Set rs = Nothing
Set cnn = Nothing
如上代码的功能是:把从Sheet1中查询到的数据,粘贴到Sheet2中,粘贴的位置从A2开始一直往下,直到粘贴完为止。