设为首页收藏本站|繁體中文

Excel 技巧网

QQ登录

只需一步,快速开始

手机号码,快捷登录

查看: 3232|亚博体育app安卓: 7

[Excel VBA] 如何使用VBA+SQL+ADO进行统计分析

[复制链接]
发表于 2012-11-1 17:04:08 | 显示全部楼层 |阅读模式
  • 署名作者: wise
  • 版权声明: 版权归本站与作者共有 除本站官方外非作者本人转载须经许可并注明出处
  • 本文来自:
  • 引用作品:
  • 适用版本: 2010 2007 
  • 语言环境: 简体中文
  • 学习方法: 掌握Excel技巧的关键是动手操作 | 下载 ≠ 知识


  • 免费注册成为本站会员,享用更多功能,结识更多Office办公高手!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    本帖最后由 wise 于 2012-11-1 17:08 编辑

    Q:如何使用VBA+SQL+ADO进行统计分析?
    本例关键是中间变量的存储。
    统计.jpg

    A:ALT+F11→插入模块,在模块中输入以下代码:
    1. Sub wise()
    2.     '定义变量
    3.     Dim conn As Object, rs As Object
    4.     Dim SQL As String, Str As String
    5.     Dim TotalScore As Double
    6.     Dim TotalCount As Long
    7.     Dim avgMath As Double
    8.     Dim ws As Worksheet
    9.    
    10.     Set ws = Sheets("Sheet1")
    11.     '建立连接
    12.     Set conn = CreateObject("ADODB.Connection")
    13.     Set rs = CreateObject("ADODB.Recordset")   '建立收集器对象

    14.     conn.connectionstring = "Provider='Microsoft.ACE.OLEDB.12.0';Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 12.0;HDR=YES'"
    15.     conn.Open
    16.    
    17.     '统计数学成绩总分
    18.     SQL = "select sum(成绩)  from  [" & ThisWorkbook.Path & "\测试.xlsm].[Sheet1$A:C] where 科目='数学' "
    19.     Set rs = conn.Execute(SQL)
    20.     TotalScore = rs.Fields(0)  '关键部分
    21.    
    22.     '统计数学总考生人数
    23.     SQL = "select count(成绩)  from  [" & ThisWorkbook.Path & "\测试.xlsm].[Sheet1$A:C] where 科目='数学' "
    24.     Set rs = conn.Execute(SQL)
    25.     TotalCount = rs.Fields(0) '关键部分
    26.    
    27.     '进行相除
    28.     avgMath = TotalScore / TotalCount
    29.    
    30.     rs.Close
    31.     conn.Close '关闭数据库链接,释放资源
    32.     Set rs = Nothing
    33.     Set conn = Nothing '清空对象
    34.     With ws
    35.       .Range("G2") = TotalScore
    36.       .Range("H2") = TotalCount
    37.       .Range("I2") = avgMath
    38.     End With
    39. End Sub
    复制代码
    测试.rar (16.23 KB, 下载次数: 92)
    发表于 2012-11-1 17:30:59 | 显示全部楼层
    使用VBA+SQL+ADO进行统计分析,方便快捷!学习借鉴!谢谢分享!
    发表于 2012-11-1 18:52:59 | 显示全部楼层
    以后要学了。
    发表于 2014-1-6 09:33:38 | 显示全部楼层
    谢谢分享
    亚博体育app安卓

    使用道具 举报

    发表于 2014-2-26 16:43:39 | 显示全部楼层
    认真学习,借鉴。
    发表于 2014-9-7 22:31:11 | 显示全部楼层
    看看
    亚博体育app安卓

    使用道具 举报

    发表于 5 天前 | 显示全部楼层
    认真学习,借鉴。
    发表于 3 天前 | 显示全部楼层

    认真学习,谢谢
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    Excel技巧网的会员探讨问题仅代表其个人意见,与网站的立场无关。任何违反国家和地方相关法律法规的言论,本站有义务协助政府相关部门追究发言者的责任!
    本站中非注明转载文章与案例的版权为作者与Excel技巧网共有。若非原文作者,本站之外任何单位或个人未经允许,不得将其用于商业用途。
    若非原文作者,任何形式的非商业性转载必须获得Excel技巧网或作者允许,并注明作者和出处。
    会员发表的帖子如涉及版权纠纷,须自行负责。详情请参考注册时的网站服务条款。
    本站特聘法律顾问:沈学律师