⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmscc.frm

📁 学生选课管理系统 实用
💻 FRM
📖 第 1 页 / 共 2 页
字号:

Private Sub cmdSave_Click()
        
     'On Error Resume Next
    strCno = Trim(cobCno.Text)
    strSno = Trim(cobSno.Text)
    strGrade = Trim(TxtGrade.Text)
    

    '检查是否存在该课程数据
    If strCno = "" Or strCno = "" Then
        Call showMsg("课程编号和课程名称不能为空!", 1)
        Exit Sub
    End If
        
    SQL = "select cno from jc_sc where cno='" & strCno & "'"
    Set rs = cnn.Execute(SQL)
    
    If rs.BOF And rs.EOF Then
            SQL = "insert into jc_sc(cno,sno,grade) "
            SQL = SQL & "values('" & strCno & "','" & strSno & "','" & strGrade & "') "
            On Error GoTo errPoint
            cnn.Execute (SQL)
            Call showMsg("添 加 成 功 !", 1)
        Else
            SQL = "update jc_sc set cno='" & strCno & "',sno='" & strSno & "',grade='" & strGrade & "' where cno='" & strCno & "' and sno='" & strSno & "'"
             On Error GoTo errPoint
            cnn.Execute (SQL)
            Call showMsg("修 改 成 功 !", 1)
    End If
    Call Data_Display
    Exit Sub
    
    
errPoint:
    Call showMsg("操作失败 !", 0)
End Sub


Private Sub cobCno_Click()
   
    Dim tmpCname As String
    
    If cobCno.Text <> "" Then
    
    
    SQL = "select cname from jc_c where  cno='" & cobCno.Text & "' "
    On Error GoTo errt
    Set rs = cnn.Execute(SQL)
    
        If (rs.BOF) Or (rs.EOF) Then
        
            Call showMsg("没有找到任何记录 !", 1)
           
        Else
                '显示所选记录
                tmpCname = rs("cname")
        End If
    
     lbCname.Caption = tmpCname
     strCname = tmpCname
     
     
    End If
    Exit Sub
errt:
    Call showMsg("没有找到任何记录 !", 1)
End Sub






Private Sub TxtGrade_GotFocus()
    Dim isAdd As Integer
    If cobSno.Text <> "" And cobCno.Text <> "" Then
    
    SQL = "select grade from jc_sc where sno='" & cobSno.Text & "' and cno='" & cobCno.Text & "' "
    On Error GoTo errg
    Set rs = cnn.Execute(SQL)
    
        If (rs.BOF) Or (rs.EOF) Then
            isAdd = MsgBox("没有找到 " & strSname & " 所选择的课程 " & strCname & "  的记录,该同学目前还没有选择该课程." & vbCrLf & " 请填写成绩并单击 '添加/修改' 或 取消.", vbInformation + vbOKCancel, "提示")
            If isAdd = vbOK Then
                TxtGrade.Text = ""
            End If
            
           
        Else
                '显示所选记录
                TxtGrade.Text = rs("grade")
            
        End If
    
    End If
    Exit Sub
errg:
    Call showMsg("没有找到任何记录 !", 1)
End Sub

Private Sub cobSno_Click()
       
    Dim tmpSname As String
    
    If cobSno.Text <> "" Then
    
    
    SQL = "select sname from jc_s where  sno='" & cobSno.Text & "' "
     On Error GoTo errc
    Set rs = cnn.Execute(SQL)
    
        If (rs.BOF) Or (rs.EOF) Then
             Call showMsg("没有找到任何记录 !", 1)
           
        Else
                '显示所选记录
                tmpSname = rs("sname")
        End If

     lbSname.Caption = " 学生姓名:" & tmpSname
     strSname = tmpSname
     
    End If
    Exit Sub
errc:
    Call showMsg("没有找到任何记录 !", 1)
End Sub

Private Sub Form_Load()

    Call Clear
    
    lbGrade.Caption = "注意:如果添加课程,请在成绩处输入 0 "
    
   If cnn.State = 0 Then
  
        On Error Resume Next
        cnn.Open connStr
       
   End If


   SQL = "select sno,cno,grade from jc_sc "
   On Error GoTo errNotable
   Set rs = cnn.Execute(SQL)
     '取得所有记录
                Do While Not rs.EOF
                    cobSno.AddItem rs("sno")
                    cobCno.AddItem rs("cno")
                    cobGrade.AddItem rs("grade")
                    
                    rs.MoveNext
                Loop
    
    
    '把记录和数据显示控件绑定
    Call Data_Display
    Exit Sub
errNotable:

    Call showMsg("没有找到相应数据,请确认所选择的数据源指向的是MS SQL Server数据库,并且数据库中已经存在课程信息表。" & vbCrLf & "您可以选择初始化重新设置数据表。", 0)
    
End Sub
Private Sub MSFG_Clear()

    With MSFlexGrid1
        .Cols = 0
        .Rows = 0
    End With
    
End Sub

Private Sub Data_Display()

    SQL = "select jc_s.sno,jc_s.sname,jc_c.cno,jc_c.cname,jc_sc.grade from jc_s,jc_c,jc_sc where jc_sc.sno=jc_s.sno and jc_sc.cno=jc_c.cno "
    On Error Resume Next
    Set scjl = cnn.Execute(SQL)

    Dim i As Integer
    
    Call MSFG_Clear '清空表
    With MSFlexGrid1
        If (scjl.BOF) Or (scjl.EOF) Then
             Call showMsg("没有找到任何记录 !", 1)
            
            .Cols = 0
            .Rows = 0
            Frame2.Visible = False
            
        Else
            .Cols = 5
            .Rows = 1
        
            '得到每一个列的列名
           ' For i = 0 To 4
           '     .TextMatrix(0, i) = rs.Fields(i).Name
           ' Next i
            
            .TextMatrix(0, 0) = "学号"
            .TextMatrix(0, 1) = "姓名"
            .TextMatrix(0, 2) = "课程编号"
            .TextMatrix(0, 3) = "课程名称"
            .TextMatrix(0, 4) = "成绩"
            
            .ColWidth(0) = 1000
            .ColWidth(1) = 1500
            .ColWidth(2) = 1000
            .ColWidth(3) = 1500
            .ColWidth(4) = 1000
            
            
            On Error GoTo rsErr
            
            Do While Not scjl.EOF
                .Rows = .Rows + 1
                '显示一条记录
                For i = 0 To 4
                .TextMatrix(MSFlexGrid1.Rows - 1, i) = Trim(scjl.Fields(i))
                Next i
                '移动游标到下一条记录
                scjl.MoveNext
            Loop
            
            SQL = "select count(jc_sc.sno) as 'scnum' from jc_sc "
            On Error Resume Next
            Set scjl = cnn.Execute(SQL)
            TextJls.Text = "共" & scjl("scnum") & "选课信息"
            
        End If
    End With
rsErr:
   
    'MsgBox "错误号码:" & er.Number & vbCrLf & "错误代码:" & Err.Source & vbCrLf & "错误描述:" & Err.Description, vbCritical, "错误"
    'MsgBox "运行错误!", vbCritical, "提示"
End Sub


Private Sub MSFlexGrid1_SelChange()
    gRow = MSFlexGrid1.Row
    With MSFlexGrid1
    
        '得到一条记录
        On Error GoTo exitThis
       ' TxtXH.Text = .TextMatrix(MSFlexGrid1.Rows - 1, 0)
       '如果为零,则说明所选择的是第一行标题
        Call Clear
        If gRow <> 0 Then
            cobSno.Text = .TextMatrix(gRow, 0)
            lbSname.Caption = .TextMatrix(gRow, 1)
            cobCno.Text = .TextMatrix(gRow, 2)
            lbCname.Caption = .TextMatrix(gRow, 3)
            TxtGrade.Text = .TextMatrix(gRow, 4)
        End If
        
    End With
    
exitThis:
    
End Sub



Private Sub Form_Resize()
    
    With Me
    
        Frame3.Left = (.ScaleWidth - Frame3.Width) / 2
        Frame3.Top = (.ScaleHeight - Frame3.Height) / 2
        
    End With
    
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -