现在是按照现有人数进行抽样的,我现在直接在考评表里面增加了一个字段“测评基数”,但是在代码中没有找到应该把“测评基数”修改到代码的哪个地方呀?
Option Compare Database
Function 考评函数(n As Single)
Dim rs1 As New ADODB.Recordset, ssql1 As String, i As Long
Dim rs2 As New ADODB.Recordset, ssql2 As String, j As Long
Dim rs3 As New ADODB.Recordset, ssql3 As String
Dim S As Single
If IsNull(Me.考试时间.Value) = True Then Exit Function
ssql1 = "SELECT 考试班级 FROM 学生成绩数据 GROUP BY 考试时间,考试班级 HAVING 考试时间=#" & Me.考试时间.Value & "#"
rs1.Open ssql1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
ssql3 = "select * from 考评表 where 考试时间=#" & Me.考试时间.Value & "#"
rs3.Open "考评表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
For i = 1 To rs3.RecordCount
rs3.Delete
rs3.Update
rs3.MoveNext
Next
For i = 1 To rs1.RecordCount
ssql2 = "SELECT 考试时间,考试班级,总分 FROM 学生成绩数据 "
ssql2 = ssql2 & "WHERE 考试时间=#" & Me.考试时间.Value & "# and 考试班级=" & rs1("考试班级").Value
ssql2 = ssql2 & " ORDER BY 考试时间,考试班级,总分 DESC;"
rs2.Open ssql2, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs3.AddNew
rs3("考试时间").Value = Me.考试时间.Value
rs3("考试班级").Value = rs1("考试班级").Value
rs3("总分").Value = DSum("总分", "学生成绩数据", "考试时间=#" & Me.考试时间.Value & "# and 考试班级=" & rs1("考试班级").Value)
rs3("均分").Value = Round(DAvg("总分", "学生成绩数据", "考试时间=#" & Me.考试时间.Value & "# and 考试班级=" & rs1("考试班级").Value), 2)
rs3.Update
S = 0
For j = 1 To Round(rs2.RecordCount * n, 0)
S = S + Nz(rs2("总分").Value, 0)
rs2.MoveNext
Next
rs3("抽样总分").Value = Round(S, 2)
rs3("抽样均分").Value = Round(rs3("抽样总分").Value / j, 2)
rs3.Update
rs2.Close
rs1.MoveNext
Next
rs3.MoveFirst
Me.考评子窗体.Form.Requery
rs1.Close
rs3.Close
End Function
Private Sub 考评计算_Click()
Me.考试班级.Value = Null
Me.选项卡控件4.Value = 1
考评函数 Nz(Me.抽样比例.Value, 1)
Call Allfilter
End Sub
Private Sub Allfilter()
Dim str As String
str = "True"
If IsNull(Me.考试时间.Value) = False Then
str = str & " and 考试时间=#" & Me.考试时间.Value & "#"
End If
If IsNull(Me.考试班级.Value) = False Then
str = str & " and 考试班级=" & Me.考试班级.Value
End If
Me.考评子窗体.Form.Filter = str
Me.考评子窗体.Form.FilterOn = True
Me.成绩子窗体.Form.Filter = str
Me.成绩子窗体.Form.FilterOn = True
End Sub
Private Sub 考试班级_AfterUpdate()
Call Allfilter
End Sub
Private Sub 考试时间_AfterUpdate()
Call Allfilter
End Sub