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

📄 frmsc.frm

📁 学生选课管理系统 实用
💻 FRM
📖 第 1 页 / 共 2 页
字号:
        Call showMsg("学号和课程编号不能为空!", 1)
        cobSno.SetFocus
        Exit Sub
    End If
    
    isOk = MsgBox(vbCrLf & "您确定要删除" & lbSname.Caption & "的选课信息么?", vbOKCancel + vbQuestion, "确认操作")
    
    If isOk = vbOK Then
    
        '删除学生选课信息
        SQL = "delete from jc_sc where sno='" & cobSno.Text & "' and cno='" & cobCno.Text & "' "
        On Error GoTo CanNotDel
        cnn.Execute (SQL)
    
    End If
    
    Call Data_Display
CanNotDel:
    Call showMsg("无法删除!", 0)
End Sub

Private Sub cmdExit_Click()
    Unload Me
    
End Sub



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)
         
        cobCno.SetFocus
        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 & "') "
            cnn.Execute (SQL)
            Call showMsg("添加 选课信息 成功", 1)
        Else
            SQL = "update jc_sc set cno='" & strCno & "',sno='" & strSno & "',grade='" & strGrade & "' where cno='" & strCno & "' and sno='" & strSno & "'"
            cnn.Execute (SQL)
            Call showMsg("修改 选课信息 成功", 1)
    End If
    
    Call Data_Display
End Sub


Private Sub cobCno_Click()
   
    Dim tmpCname As String
    
    If cobCno.Text <> "" Then
    
    
    SQL = "select cname from jc_c where  cno='" & cobCno.Text & "' "
    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
End Sub




Private Sub cobFind_Click()
     TxtKeyword.Enabled = True
End Sub

Private Sub Form_Activate()
    lbGrade.Caption = "注意:如果添加课程,请在成绩处输入 0 "
    cobFind.AddItem "学号", 0
    cobFind.AddItem "课程编号", 1
    
    Call Clear

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 & "' "
    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
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 Resume Next
    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
End Sub
Function getRecordsNums(ByVal TmpSql As String) As String
    Dim rs As ADODB.Recordset
    On Error Resume Next
    Set rs = cnn.Execute(TmpSql)
     lbScounts.Caption = "当前共" & rs("scnums") & "个选课信息"
     getRecordsNums = lbScounts.Caption
End Function
Private Sub getAllRecords()
  
    'SQL = "select count(sno) as scnums from jc_sc"
    'getRecordsNums SQL
    
    
     '把记录和数据显示控件绑定
    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 order by jc_sc.sno asc "
    'SQL = "select * from jc_sc "
    On Error Resume Next
    Set rs = cnn.Execute(SQL)
    Call Data_Display
    
End Sub

Private Sub getSc()
    SQL = "select distinct sno,distinct cno,grade from jc_sc "
    On Error Resume Next
    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
End Sub

Private Sub Form_Load()
   Dim strErr As String
    
   If cnn.State = 0 Then
  
        On Error Resume Next
        cnn.Open connStr
       
   End If

   
    
    Call Clear
    Call getSc
    'Call getAllRecords
    
    Exit Sub
errNotable:
       strErr = "没有找到相应数据,请确认所选择的数据源指向的是MS SQL Server数据库" & _
         vbCrLf & "并且数据库中已经存在选课信息表。" & _
         vbCrLf & "您可以选择初始化重新设置数据表。" & vbCrLf
    Call showMsg(strErr, 0)
    
End Sub
Private Sub Form_Resize()
     
    With Me
    
        Frame1.Left = (.ScaleWidth - Frame1.Width) / 2
        Frame1.Top = (.ScaleHeight - Frame1.Height) / 2
        
    End With
    
End Sub


Private Sub Form_Unload(Cancel As Integer)
    
    mdiFrm.stb.SimpleText = "就绪"
    Unload Me
End Sub
Private Sub MSFG_Clear()

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

Private Sub Data_Display()

   
    Dim i As Integer

    '清空表
    Call MSFG_Clear
    With MSFlexGrid1
        On Error Resume Next
        If (rs.BOF) Or (rs.EOF) Then
            Call showMsg("没有相关记录!", 1)
            
             .Cols = 0
            .Rows = 0
            ' FrameScView.Visible = False
        Else
            .Cols = 5
            .Rows = 1
            'FrameScView.Visible = True
        
            '得到每一个列的列名
           ' 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 rs.EOF
                .Rows = .Rows + 1
                '显示一条记录
                For i = 0 To 4
                .TextMatrix(MSFlexGrid1.Rows - 1, i) = Trim(rs.Fields(i))
                Next i
                '移动游标到下一条记录
                rs.MoveNext
            Loop
            
        End If
    End With
    
  Exit Sub
rsErr:
     Call showMsg(" ", 0)
     
End Sub


Private Sub MSFlexGrid1_Click()
    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 MSFlexGrid1_RowColChange()
   Call MSFlexGrid1_Click
End Sub

⌨️ 快捷键说明

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