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