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

📄 frmcourseadmin.frm

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

Private Sub cmdExit_Click()

    Unload Me
    
End Sub

Private Sub cmdFind_Click()
    Dim strKeyword As String
    
    strKeyword = Trim(TxtKeyword.Text)
    
   
    If cobField.Text = "" Then
    
        Call showMsg("请选择查询方式!", 1)
        cobField.SetFocus
        Exit Sub
    ElseIf strKeyword = "" Then
        Call showMsg("请输入关键字!", 1)
        TxtKeyword.Enabled = True
        TxtKeyword.SetFocus
        Exit Sub
    Else
    
        If strFieldName <> "" Then
        SQL = "select cno,cname,tname,ccredit from jc_c where " & strFieldName & " like '%" & strKeyword & "%'"
        On Error Resume Next
        Set rs = cnn.Execute(SQL)
        
        Call Data_Display
        SQL = "select count(sno) as cnums from jc_s where " & strFieldName & " like '%" & strKeyword & "%'"
        getRecordsNums SQL
     End If
    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("cnums") & "个课程信息"
     getRecordsNums = lbScounts.Caption
End Function
Private Sub getAllRecords()
  
    SQL = "select count(cno) as cnums from jc_c"
    getRecordsNums SQL
    
    
    SQL = "select cno,cname,tname,ccredit from jc_c order by cno desc "
    On Error Resume Next
    Set rs = cnn.Execute(SQL)
    Call Data_Display
    
End Sub
Private Sub getFieldOrd()
    If strFieldName <> "" Then
        SQL = "select cno,cname,tname,ccredit from jc_c order by " & strFieldName
            If StrOrd <> "" Then
            SQL = SQL & " " & StrOrd
            End If
        On Error Resume Next
        Set rs = cnn.Execute(SQL)
        Call Data_Display
    End If
End Sub


Private Sub cmdFind_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    cmdFind.BackColor = &H80000005
End Sub

Private Sub cmdFind_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    cmdFind.BackColor = &HFFC0C0
End Sub

Private Sub cmdSave_Click()
    'On Error Resume Next
    Dim Msg As String
    Dim Sid As Integer
    
    '检查是否存在该学生生数据
    If TxtCno.Text = "" Then
        Call showMsg("课程编号不能为空!", 1)
        TxtCno.SetFocus
        Exit Sub
    End If
    
    On Error GoTo sqlErr
    SQL = "select cno from jc_c where cno='" & TxtCno.Text & "'"
    Set rs = cnn.Execute(SQL)
    If rs.BOF And rs.EOF Then
        On Error GoTo sqlErr
        SQL = "insert into jc_c (cno,cname,tname,ccredit) "
        SQL = SQL & "values ('" & TxtCno.Text & "','" & TxtCname.Text & "','" & TxtTname.Text & "','" & TxtCcredit.Text & "')"
        cnn.Execute (SQL)
        Call showMsg("保存 " & TxtCname.Text & " 的信息成功!", 1)
        Exit Sub
    Else
        On Error GoTo sqlErr
        SQL = "update jc_c set cname='" & TxtCname.Text & "',tname='" & TxtTname.Text & "',ccredit='" & TxtCcredit.Text & "' where cno='" & TxtCno.Text & "'"
        cnn.Execute (SQL)
        SQL = "select cno from jc_c where cno='" & TxtCno.Text & "'"
        Set rs = cnn.Execute(SQL)
        Call showMsg("修改 " & TxtCname.Text & " 的信息成功!", 1)
        Exit Sub
    End If
sqlErr:

   Call showMsg("操作失败,可能原因:" & vbCrLf & "-你选择信息已经存在。" & vbCrLf & "-您输入的信息为非法字符。", 0)

    Call getAllRecords
End Sub

Private Sub Form_Activate()

    '初始化下拉列表,Style均为 2 -Dropdown List
    
    cobField.AddItem "课程编号", 0
    cobField.AddItem "课程名称", 1
    cobField.AddItem "授课教师", 2
    cobField.AddItem "学分", 3
 
    
    cobOrdField.AddItem "课程编号", 0
    cobOrdField.AddItem "课程名称", 1
    cobOrdField.AddItem "授课教师", 2
    cobOrdField.AddItem "学分", 3
    
    
    cobOrd.AddItem "升序", 0
    cobOrd.AddItem "降序", 1
End Sub
Private Sub Form_Load()
    Dim strErr As String
    If cnn.State = 0 Then
  
       On Error GoTo errNotable:
       cnn.Open connStr
       
    End If
    
    '调用Clear过程,清空所有文本
    Call Clear
    '调用getAllRecords过程,显示所有记录
    Call getAllRecords
    
    Exit Sub

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

Private Sub cobField_Click()
    '得到所选择的排序方式并转化为字段名
    Select Case cobField.ListIndex
        Case 0: strFieldName = "cno"
        Case 1: strFieldName = "cname"
        Case 2: strFieldName = "tname"
        Case 3: strFieldName = "ccredit"
        Case Else: strFieldName = "cno"
    End Select
    TxtKeyword.Enabled = True
End Sub

Private Sub cobOrd_Click()

    '得到所选择的排列升降序方式
     Select Case cobOrd.ListIndex
        Case 0: StrOrd = "asc"
        Case 1: StrOrd = "desc"
        Case Else: StrOrd = "asc"
    End Select
    
    Call getFieldOrd
End Sub

Private Sub cobOrdField_Click()

    '得到所选择的排序方式并转化为字段名
    Select Case cobOrdField.ListIndex
        Case 0: strFieldName = "cno"
        Case 1: strFieldName = "cname"
        Case 2: strFieldName = "tname"
        Case 3: strFieldName = "ccredit"
        Case Else: strFieldName = "cno"
    End Select
    
    Call getFieldOrd
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
            frameView.Enabled = False
        Else
            .Cols = 4
            .Rows = 1
            frameView.Enabled = True
             
            .TextMatrix(0, 0) = "课程编号"
            .TextMatrix(0, 1) = "课程名称"
            .TextMatrix(0, 2) = "授课教师姓名"
            .TextMatrix(0, 3) = "课程学分"
            
            .ColWidth(0) = 1500
            .ColWidth(1) = 1500
            .ColWidth(2) = 2500
            .ColWidth(3) = 800
            
            
            On Error GoTo rsErr
            
            Do While Not rs.EOF
                .Rows = .Rows + 1
                '显示一条记录
                For i = 0 To 3
                .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
            TxtCno.Text = .TextMatrix(gRow, 0)
            TxtCname.Text = .TextMatrix(gRow, 1)
            TxtTname.Text = .TextMatrix(gRow, 2)
            TxtCcredit.Text = .TextMatrix(gRow, 3)
        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 + -