微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

VB中读取access中的下列数据,注意是读取,然后按

时间:2017-02-21 03:23  浏览:努力统计中...
我用的是ADO 学号 姓名 英语 数学 物理 化学 VB 200235882 张一山 81 75 63 58 87 200235882 张撒山 81 75 63 58 87 200235893 李的斯 71 87 73 78 97 200236004 王永民 91 58 83 88 67 200236016 李鹏 87 79 93 98 77 20023608
我用的是ADO

学号 姓名 英语 数学 物理 化学 VB 

200235882 张一山 81 75 63 58 87 
200235882 张撒山 81 75 63 58 87 
200235893 李的斯 71 87 73 78 97 
200236004 王永民 91 58 83 88 67 
200236016 李鹏 87 79 93 98 77 
200236088 胡萝卜 51 95 69 76 37 
200236113 钱广 78 56 57 76 81 
200236132 周全 21 75 73 87 57 
200236152 吴大庆 96 85 93 67 17 
200236182 赵无财 61 77 77 87 89 
200235883 张说山 81 75 63 58 87 
200235883 张的山 81 75 63 58 87 
200235883 张飞山 81 75 63 58 87 
200235891 李斯 71 87 73 78 97 
200236000 王永民 91 58 83 88 67 
200236010 李鹏 87 79 93 98 77 
200236088 胡萝卜 51 95 69 45 37 
200236099 赵来财 61 77 77 87 89 
200236115 钱广 78 56 57 76 81 
200236125 孙悟空 88 68 89 66 67 
200236134 周全 21 75 73 87 57 
200236152 吴大庆 96 85 93 67 17 
200236181 赵无财 61 77 77 87 89 
统计出分数段范围人数 
范围 英语 数学 物理 化学 VB 
>=90 3 5 ....... 
80-90 10 12 ...... 
.... 
.... 
<60 .... .... .... 
然后就是算出每个人的加权平均分,进行排名~~~ 
谢谢各位大侠了~~我菜鸟在线等 

帮你顶

1. 参考 我的读取access数据库的例子
2. 想一个sql写出来很困难,先给你一个参考,可能有点小问题
select a.*,b.*,c.*,d.*,e.*
from (select left(英语,1) + '0' as 英语,count(*) as times from aa group by left(英语,1) + '0') as a,
  (select left(数学,1) + '0' as 数学,count(*) as times from aa group by left(数学,1) + '0') as b,

VB code

  (select left(物理,1) + '0' as 物理,count(*) as times from aa group by left(物理,1) + '0') as c,
  (select left(化学,1) + '0' as 化学,count(*) as times from aa group by left(化学,1) + '0') as d,
  (select left(vb,1) + '0' as vb,count(*) as times from aa group by left(vb,1) + '0') as e
where a.英语=b.数学 and a.英语=c.物理 and a.英语=d.化学 and a.英语=e.vb



不要急于用一个语句搞定~~
我的办法是把数据检索出来后再处理~~
1,把数据检索出来
3,用一个循环,计算这一列的值,MSHFlexGrid 有排序的方法~~调用即可
参考代码:
With MSHFlexGrid1 .Cols = 7 .Col = 6 .Row = 0 .Text = "平均" For I = 1 To MSHFlexGrid1.Rows - 1 .Col = 6 .Row = I .Text = (CLng(IIf(.TextMatrix(I, 4) =
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线------