新手一个,业余爱好VB
最近在编个涉及统计的小程序
要求是这样的
统计出access中连续5个记录中某一个字段不同数值的个数,然后把这个统计的数值再保存到另外个字段里例如:
序号 得分
1 54
2 25
3 34
4 50
5 34
6 25
7 80
8 34
... ...
这样,统计得分执行的结果应该是4,3,4,4....这么一列数据保存到另外个字段里
条件比较多,新手迷茫啊
最初的思路是通过循环和if来做,但貌似代码一大串,执行效率肯定不怎么样知道sql里有个统计函数 count(distinct ...),但不知道怎么来组织,高手指条明路吧谢谢了
最近在编个涉及统计的小程序
要求是这样的
统计出access中连续5个记录中某一个字段不同数值的个数,然后把这个统计的数值再保存到另外个字段里例如:
序号 得分
1 54
2 25
3 34
4 50
5 34
6 25
7 80
8 34
... ...
这样,统计得分执行的结果应该是4,3,4,4....这么一列数据保存到另外个字段里
条件比较多,新手迷茫啊
最初的思路是通过循环和if来做,但貌似代码一大串,执行效率肯定不怎么样知道sql里有个统计函数 count(distinct ...),但不知道怎么来组织,高手指条明路吧谢谢了
我现在替你得到4,3,4,4....以下的活,你自己去干吧。Private Sub Command1_Click()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\11.mdb;Persist Security Info=False"
Adodc1.CommandType = adCmdText
Adodc1.CursorLocation = adUseClient
Adodc1.RecordSource = "select count(*) from tb2"
Adodc1.Refresh
Dim rdNum As Long, i As Long
rdNum = Adodc1.Recordset.Fields(0)
For i = 1 To rdNum - 4
Adodc1.RecordSource = "select count(a) from (SELECT Count(得分) as a from (select * from tb2 where 序号>=" & _
i & " and 序号<=" & i + 4 & ") group by 得分)"
Adodc1.Refresh
Debug.Print Adodc1.Recordset.Fields(0),
Next
End Sub
用group by分组得到这列字段是个好想法,不过这么多层的select,不知道效率如何,我有好多条数据啊
"SELECT Count(得分) as a from (select sum(序号) from tb2 where 序号>=" & _
i & " and 序号<=" & i + 4 & " group by 得分)"