大众计算机学习网

专门提供各种电脑教程

EXCEL的vba如何使用SQL

Admin | 2017-10-24 17:01:45 | 被阅次数 | 5670

  在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开始一直往下,直到粘贴完为止。