ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: 睡虫E梦

[求助] 可否通过SQL查找学生清单信息

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-3 20:58 | 显示全部楼层

老师,您的SQL写得很精简,能否再加少少条件进行查询吗?例如仅查询并返回值数学这一科的成绩,不用全部返回学生所有学科成绩,能做到吗?同时,能对上述的代码句进行注释下吗?我还在入门学习。谢谢谢

TA的精华主题

TA的得分主题

发表于 2017-4-4 10:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub cax()
  2. Dim Conn, SQL$, myPath$, Rst, sRan As Range, i&
  3. Set sRan = Range("A2")
  4. Range("a2:g1000").ClearContents
  5. myPath = ThisWorkbook.Path & ""
  6. Set Conn = CreateObject("adodb.connection")
  7. Set Rst = CreateObject("adodb.recordset")
  8. Conn.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & _
  9.             "extended properties=excel 8.0;" & _
  10.             "data source=" & myPath & [k1].Value & ".xls"
  11. Conn.Open
  12. If Conn.State = 1 Then
  13.     SQL = "select 考号,姓名,数学 from [年级$a2:g]"
  14.     Rst.Open SQL, Conn, 1, 3
  15.     For i = 0 To Rst.Fields.Count - 1
  16.         sRan.Offset(0, i).Value = Rst.Fields(i).Name
  17.     Next

  18.     sRan.Offset(1, 0).CopyFromRecordset Conn.Execute(SQL)
  19.     Conn.Close
  20. End If
  21. Set Conn = Nothing
  22. End Sub

复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-4 17:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

谢谢老师教导,真心感谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-15 21:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位老师,现在我想把六年级学生的获奖的各个奖次的分数进行根据B列及C列进行条件查询后并统计在D列,能实现到这样的算法吗?无限感谢。

学生获奖查询并统计2017.zip

29.83 KB, 下载次数: 2

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-4-29 18:41 | 显示全部楼层

老师,您好。您如有空可否帮忙看看这个代码可否进行根据A表的条件数据对应B表重复多条数据进行合计吗?谢谢
Private Sub CommandButton1_Click()
Sheet1.Range("D3:E100") = ""
Application.ScreenUpdating = False
Dim wb As Excel.Workbook
Dim arr, brr As Variant
Dim i, s, r As Integer
arr = ThisWorkbook.Worksheets(1).[a1].CurrentRegion
Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & ThisWorkbook.Worksheets(1).[G1] & ".xls") '依次打开目录工作薄
brr = wb.Worksheets(1).UsedRange

For i = 3 To UBound(arr)
For s = 3 To UBound(brr)

If arr(i, 2) = brr(s, 1) And arr(i, 3) = brr(s, 2) Then
arr(i, 4) = brr(s, 3)
End If
Next s
Next i


ThisWorkbook.Worksheets(1).[a1].Resize(UBound(arr), UBound(arr, 2)) = arr
    wb.Close False '关闭打开的工作薄
    Application.ScreenUpdating = True
End Sub

详见http://club.excelhome.net/thread-1338080-1-1.html
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-19 15:20 , Processed in 0.041071 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表