会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 查询视图 > 正文

根据要求去掉最大与最小的数据,然后求平均分

时间:2008-12-08 08:56 来源:本站原创 作者:victordu… 阅读:

关于平均值的问题,如何根据被考核人和考项这两个条件求各项成绩的平均值当每个人的考项的个数大于0,求平均,大于19,求减去一个最大和最小后的平均值,大于39,求减去2个最大和最小后的平均值,大于59,求减去3个最大和最小后的平均值,大于79,求减去4个最大和最小后的平均值,请帮忙,谢谢

根据要求去掉最大与最小的数据,然后求平均分

这是求得各项批标的总分后求得平均分

如要筛除各项指标的最大值与最小值,可以看示例2259[vd].rar

示例下载:点击这里下载

Sub aExcuteEvents()
Dim rsyg As New ADODB.Recordset
rsyg.Open "qrykxcount", CurrentProject.Connection, 1, 2
Do While Not rsyg.EOF
goFindrec rsyg("被考核人员"), rsyg("考项")
rsyg.MoveNext
Loop

End Sub

Sub goFindrec(strXm As String, strKx As String)
Dim rs As New ADODB.Recordset
Dim sql As String
Dim strCri As String
strCri = "[被考核人员]='" & strXm & "' and [考项]='" & strKx & "'"
Debug.Print strCri
Dim intKxCount As Integer
intKxCount = DCount("考项", "中层", strCri)
Debug.Print "被考核人员的考项数:" & intKxCount

sql = "select id from qryScoreOrder where " & strCri & " order by 总得分"
Debug.Print sql
rs.Open sql, CurrentProject.Connection, 1, 2
Debug.Print "记录集的记录数:" & rs.RecordCount

    Dim i As Integer
    Dim j As Integer

    Select Case intKxCount
        Case Is <= 19
        j = 0
        Case Is <= 39
        j = 1
        Case Is <= 59
        j = 2
        Case Is <= 79
        j = 3
        Case Is > 79
        j = 4
    End Select
    Debug.Print "筛除记录数:" & j & "×2"

Dim rsCal As New ADODB.Recordset
rsCal.Open "tblcal", CurrentProject.Connection, 1, 2
rs.Move j
For i = 1 To intKxCount - j * 2

    rsCal.AddNew
    rsCal("id") = rs("ID")
    Debug.Print "添加到tblcal表的记录:" & rs.AbsolutePosition, rs("id")
    rsCal.Update
    rs.MoveNext
Next i
End Sub

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: