大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

EXCEL的vba如何使用SQL

Admin | 2017-10-24 17:01:45 | ReadNums | 222 | 标签 Excel教程 | 打印本页
     

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


问题未解决:在线咨询我要在线咨询问题

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日