www.pudn.com > myActivebart.rar > stat.frm
VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Begin VB.Form Form8
Caption = "学生成绩统计"
ClientHeight = 5880
ClientLeft = 60
ClientTop = 345
ClientWidth = 9150
Icon = "stat.frx":0000
LinkTopic = "Form8"
ScaleHeight = 5880
ScaleWidth = 9150
StartUpPosition = 2 '屏幕中心
Begin VB.CommandButton Command1
Caption = "统计"
Height = 375
Left = 6060
TabIndex = 13
Top = 5370
Width = 1035
End
Begin VB.Frame Frame1
Caption = "统计条件"
Height = 1215
Left = 90
TabIndex = 2
Top = 90
Width = 9015
Begin VB.ComboBox Combo1
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 330
Left = 1260
TabIndex = 10
Top = 180
Width = 1515
End
Begin VB.ComboBox Combo2
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 330
Left = 3900
TabIndex = 9
Top = 210
Width = 1725
End
Begin VB.CheckBox Check3
Caption = "学年度"
Height = 345
Left = 270
TabIndex = 8
Top = 660
Width = 1035
End
Begin VB.CheckBox Check4
Caption = "学期"
Height = 345
Left = 3000
TabIndex = 7
Top = 630
Width = 675
End
Begin VB.TextBox Text2
Height = 315
Left = 1230
TabIndex = 6
Top = 660
Width = 1515
End
Begin VB.ComboBox Combo3
Height = 300
ItemData = "stat.frx":08CA
Left = 3870
List = "stat.frx":08D4
TabIndex = 5
Top = 660
Width = 1785
End
Begin VB.CheckBox Check5
Caption = "考试类型"
Height = 315
Left = 5910
TabIndex = 4
Top = 660
Width = 1185
End
Begin VB.ComboBox Combo4
Height = 300
ItemData = "stat.frx":08DE
Left = 7230
List = "stat.frx":08E8
TabIndex = 3
Top = 660
Width = 1515
End
Begin VB.Label Label1
Caption = "科目"
Height = 285
Left = 3180
TabIndex = 14
Top = 300
Width = 645
End
Begin VB.Label Label3
AutoSize = -1 'True
BackStyle = 0 'Transparent
Caption = "选择班级:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 210
Left = 150
TabIndex = 11
Top = 270
Width = 1020
End
End
Begin VB.CommandButton Command2
Caption = "打印(&P)"
Height = 375
Left = 7110
TabIndex = 1
Top = 5370
Width = 975
End
Begin VB.CommandButton Command3
Caption = "退出(&Q)"
Height = 375
Left = 8070
TabIndex = 0
Top = 5370
Width = 885
End
Begin MSFlexGridLib.MSFlexGrid grid1
Height = 3615
Left = 90
TabIndex = 12
Top = 1410
Width = 8925
_ExtentX = 15743
_ExtentY = 6376
_Version = 393216
Rows = 100
Cols = 8
FixedCols = 0
BackColor = -2147483624
FormatString = " 班级 | 学号 | 姓名 |学期| 学年度 | 科目 | 考试类型 | 成绩 "
End
End
Attribute VB_Name = "Form8"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim rs3 As New ADODB.Recordset
Private Sub Command1_Click()
Dim i As Integer
If Combo1.Text = "" Or Combo2.Text = "" Then
MsgBox "条件不全", vbOKOnly, "提示"
End If
If Combo2.Text = "总成绩" Then
If rs.State = 1 Then rs.Close
rs.Open "select 学号 from 学生在校成绩 where 班级='" & Combo1.Text & "' group by 学号", cnn, adOpenKeyset, adLockPessimistic
If rs.RecordCount = 0 Then Exit Sub
rs.MoveFirst
If rs1.State = 1 Then rs1.Close
rs1.Open "delete from 成绩统计", cnn, adOpenKeyset, adLockPessimistic
Do While Not rs.EOF
If rs2.State = 1 Then rs2.Close
strsql = "select 班级,学号,姓名,学期,学年度 ,科目,考试类型,成绩 from 学生在校成绩 where 班级 = '" & Combo1.Text & "'"
If Check3.Value Then strsql = strsql + " and 学年度 = '" & Text2.Text & "'"
If Check4.Value Then strsql = strsql + " and 学期 = '" & Combo3.Text & "'"
If Check5.Value Then strsql = strsql + " and 考试类型= '" & Combo4.Text & "'"
strsql = strsql + " and 学号 = '" & rs.Fields("学号") & "'"
If rs2.State = 1 Then rs2.Close
rs2.Open strsql, cnn, adOpenKeyset, adLockPessimistic
If rs3.State = 1 Then rs3.Close
rs3.Open "select sum(val(成绩)) as 成绩 from 学生在校成绩 where 班级 = '" & Combo1.Text & "' and 学号 = '" & rs.Fields("学号") & "'", cnn, adOpenKeyset, adLockPessimistic
If rs1.State = 1 Then rs1.Close
rs1.Open "select * from 成绩统计", cnn, adOpenKeyset, adLockPessimistic
rs1.AddNew
For i = 0 To rs1.Fields.Count - 1
If i = 5 Then rs1.Fields(i) = "总成绩"
If i = 7 Then rs1.Fields(i) = rs3.Fields("成绩")
If (i <> 5 And i <> 7) Then rs1.Fields(i) = rs2.Fields(i)
Next i
rs1.Update
rs.MoveNext
Loop
If De1.rsComm2.State = 1 Then De1.rsComm2.Close
De1.rsComm2.Open "select * from 成绩统计", cnn, adOpenKeyset, adLockPessimistic
Call grade2(De1.rsComm2, grid1, 1)
Else
strsql = "select 班级,学号,姓名,学期,学年度 ,科目,考试类型,成绩 from 学生在校成绩 where 班级 = '" & Combo1.Text & "' and 科目 = '" & Combo2.Text & "'"
If Check3.Value Then strsql = strsql + " and 学年度 = '" & Text2.Text & "'"
If Check4.Value Then strsql = strsql + " and 学期 = '" & Combo3.Text & "'"
If Check5.Value Then strsql = strsql + " and 考试类型= '" & Combo4.Text & "'"
strsql = strsql & " group by 班级,学号,姓名,学期,学年度 ,科目,考试类型,成绩 order by 成绩 desc"
If De1.rsComm2.State = 1 Then De1.rsComm2.Close
De1.rsComm2.Open strsql, cnn, adOpenKeyset, adLockPessimistic
Call grade2(De1.rsComm2, grid1, 0)
End If
End Sub
Private Sub Command2_Click()
If De1.rsComm2.RecordCount = 0 Then Exit Sub
DataReport2.Show 1
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub Form_Load()
If rs.State = 1 Then rs.Close
rs.Open "select 班级 from 班级表", cnn, adOpenKeyset, adLockPessimistic
If rs.RecordCount <> 0 Then
rs.MoveFirst
Do While Not rs.EOF
Combo1.additem rs.Fields("班级")
rs.MoveNext
Loop
End If
If rs.State = 1 Then rs.Close
rs.Open "select 科目 from 科目表", cnn, adOpenKeyset, adLockPessimistic
If rs.RecordCount <> 0 Then
rs.MoveFirst
Combo2.additem "总成绩"
Do While Not rs.EOF
Combo2.additem rs.Fields("科目")
rs.MoveNext
Loop
End If
End Sub