ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何用VBA+ADO+SQL来找出数学成绩进步及退步最多者?

如何用VBA+ADO+SQL来找出数学成绩进步及退步最多者?

作者:绿色风 分类: 时间:2022-08-18 浏览:103
楼主
wise
Q:如何用VBA+ADO+SQL来找出数学成绩进步及退步最多者?
A:ALT+F11→插入模块→输入以下代码:
  1. Public Sub RunMacro()
  2.     For Each loWindow In Application.Windows
  3.         If LCase(loWindow.Caption) = "result.xls" Then
  4.             loWindow.Close (False)
  5.         End If
  6.     Next
  7.    
  8.     If Dir("c:\result.xls") <> "" Then
  9.         Kill "c:\result.xls"
  10.     End If
  11.    
  12.     ActiveWorkbook.Save
  13.    
  14.     Set loConnection = CreateObject("ADODB.Connection")
  15.     Set loRecordset = CreateObject("ADODB.Recordset")
  16.     loConnection.Open "Driver={Microsoft Excel Driver (*.xls)}; " & _
  17.                         "DBQ=" + ActiveWorkbook.FullName + ";" & _
  18.                         "ReadOnly=True"
  19.     Dim lcBaseQuery As String
  20.     lcBaseQuery = "(select a.学生, a.考试日期 as 第一次考试日期, b.考试日期 as 第二次考试日期, " & _
  21.     "a.数学成绩 as 第一次数学成绩, b.数学成绩 as 第二次数学成绩, " & _
  22.     "(b.数学成绩-a.数学成绩) as 相差分数, " & _
  23.     "iif (相差分数 > 0, '进步 ', '退步 ')&abs(相差分数)&'分' as 批注 " & _
  24.     "from [score$] a, [score$] b " & _
  25.     "where b.学生 = a.学生 " & _
  26.     "and b.考试日期 > a.考试日期 " & _
  27.     "order by (b.数学成绩-a.数学成绩) desc)"
  28.    
  29.     loRecordset.Open _
  30.     "select * " & _
  31.     "into [Excel 8.0;Database=c:\result.xls].[sheet1] " & _
  32.     "from " & _
  33.     lcBaseQuery & _
  34.     "where 相差分数 = (select max(相差分数) from " & lcBaseQuery & ") " & _
  35.     "or 相差分数 = (select min(相差分数) from " & lcBaseQuery & ")", loConnection
  36.     loConnection.Close
  37.     Workbooks.Open ("c:\result.xls")
  38.     ActiveWorkbook.ActiveSheet.UsedRange.Font.Name = "Tahoma"
  39.     ActiveWorkbook.ActiveSheet.UsedRange.Font.Size = 8
  40.     ActiveWorkbook.ActiveSheet.Cells.EntireRow.AutoFit
  41.     ActiveWorkbook.ActiveSheet.Cells.EntireColumn.AutoFit
  42. End Sub

找出数学成绩进步及退步最多者.rar
2楼
chury11
慢慢研究
3楼
lisan
谢谢!学习中……    

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap