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

📄 grade_edit.frm

📁 这是一个非常 好的一个程序进行体会一下学生管理系统
💻 FRM
📖 第 1 页 / 共 2 页
字号:
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "RVB_UniqueId" ,"41FF01E602F6"
Attribute VB_Ext_KEY = "RVB_ModelStereotype" ,"Form"
Dim mrc As ADODB.Recordset
Private mrc1 As ADODB.Recordset   '定义记录集
Dim txtSQL As String
Private txtSQL1 As String         '定义SQL字符串
Dim i As Integer             '定义循环变量
Dim mrcbookmark As Variant

Private Sub Command1_Click() '“确定”按钮
    If Combo1(0).Text = "" Then
       MsgBox "请选定学期!", 0 + 48, "注意!"
       Combo1(0).SetFocus
       Exit Sub
    End If
    If Combo1(1).Text = "" Then
       MsgBox "请填写课程名!", 0 + 48, "注意!"
       Combo1(1).SetFocus
       Exit Sub
    End If
    If Combo1(2).Text = "" Then
       MsgBox "请填写教师姓名!", 0 + 48, "注意!"
       Combo1(2).SetFocus
       Exit Sub
    End If
    Call Grid_show
    If mrc.EOF Then
        MsgBox "没有符合条件的记录!", 0 + 48, "注意!"
        Combo1(0).SetFocus
        mrc.Close
        Set mrc = Nothing
        Exit Sub
    End If
    myFlexGrid.Enabled = True
    For i = 0 To 2
        If Not IsNull(mrc.Fields(i)) Then
            Text1(i).Text = mrc.Fields(i)
        Else: Text1(i).Text = ""
        End If
    Next i
    Command1.Enabled = False
    Frame2.Visible = True
End Sub

Private Sub Command2_Click() '重置按钮
    Combo1(0).Text = ""
    Combo1(1).Text = ""
    Combo1(2).Text = ""
    Frame2.Visible = False
    myFlexGrid.Rows = 1 '   清空显示的选课信息
    mrc.Close
    Set mrc = Nothing
    Command1.Enabled = True
    myFlexGrid.Enabled = False
End Sub
    
Private Sub Command3_Click() '保存按钮
Dim edit_type As Boolean '定义布尔变量用来区分是添加还是修改
    edit_type = False    '初始化为修改状态
    If Text1(2).Text = "" Then
        Command4.Enabled = True
        Exit Sub
    End If
    If IsNull(mrc.Fields(2)) Then edit_type = True '原来为空,则为添加状态
    If edit_type Then
        Command4.Enabled = False
    End If
    mrc.Fields(2) = Val(Text1(2).Text)
    '在判断成绩是否及格,如果不及格将其信息自动添加到重修记录中
    If mrc.Fields(2) < 60 And edit_type Then
        txtSQL1 = "select * from Reles_info "
        Set mrc1 = ExecuteSQL(txtSQL1, MsgText)
        If mrc.Fields(7) = False Then
            mrc1.AddNew
            mrc1.Fields(0) = mrc.Fields(0)
            mrc1.Fields(1) = mrc.Fields(8)
            mrc1.Fields(2) = mrc.Fields(2)
            mrc1.Fields(3) = 1
            mrc1.Fields(4) = "学期:" & Combo1(0).Text & "  分数:" & mrc.Fields(2) & ";   "
            mrc1.Update
        Else
            mrc1.MoveFirst
            Do While Not mrc1.EOF
                If mrc1.Fields(0) = mrc.Fields(0) And mrc1.Fields(1) = mrc.Fields(8) Then
                    Exit Do
                End If
                mrc1.MoveNext
            Loop
            mrc1.Fields(2) = mrc.Fields(2)
            mrc1.Fields(3) = mrc1.Fields(3) + 1
            mrc1.Fields(4) = mrc1.Fields(4) + "学期:" & Combo1(0).Text & "  分数:" & mrc.Fields(2) & ";   "
            mrc1.Update
        End If
        MsgBox "该生成绩不及格,需要进行第" & mrc1.Fields(3) & "次重修!", 0 + 48, "提醒!"
        mrc1.Close
    End If
    '计算并保存绩点
    Dim mark, jpoint As Single
    mark = Val(Text1(2).Text)
    Select Case mark
        Case 90 To 100
            jpoint = 4#
        Case 85 To 89.9
            jpoint = 3.7
        Case 82 To 84.9
            jpoint = 3.3
        Case 78 To 81.9
            jpoint = 3#
        Case 75 To 77.9
            jpoint = 2.7
        Case 72 To 74.9
            jpoint = 2.3
        Case 68 To 71.9
            jpoint = 2#
        Case 66 To 67.9
            jpoint = 1.7
        Case 64 To 65.9
            jpoint = 1.5
        Case 60 To 63.9
            jpoint = 1#
        Case Else
            jpoint = 0
    End Select
    mrc.Fields(3) = jpoint
    '学分绩点=课程学分*绩点*课程权重系数
    mrc.Fields(4) = Format(jpoint * mrc.Fields(5) * mrc.Fields(6), "0.0")
    mrc.Update
    mrcbookmark = mrc.Bookmark '保存记录的当前位置
    Call Grid_show '更新myFlexGrid 中的选课信息
    mrc.Bookmark = mrcbookmark '把记录置为更新前的当前位置
    Command3.Enabled = False
    Command4.Enabled = True
End Sub

Private Sub Command4_Click() '“下一个”按钮
    mrc.MoveNext
    If Not mrc.EOF Then
        For i = 0 To 2
            If Not IsNull(mrc.Fields(i)) Then
                Text1(i).Text = mrc.Fields(i)
            Else: Text1(i).Text = ""
                  Command4.Enabled = False
                  Command3.Enabled = True
            End If
        Next i
    Else
        MsgBox "已经达到最后的记录!", 0 + 48, "注意!"
        mrc.MoveLast
        For i = 0 To 2
            If Not IsNull(mrc.Fields(i)) Then
                Text1(i).Text = mrc.Fields(i)
            End If
        Next i
    End If
End Sub

Private Sub Form_Load()
    With myFlexGrid
         .Rows = 1
         .CellAlignment = 2
         .TextMatrix(0, 0) = "学生学号"
         .TextMatrix(0, 1) = "学生姓名"
         .TextMatrix(0, 2) = "成绩"
         .TextMatrix(0, 3) = "绩点"
         .TextMatrix(0, 4) = "学分绩点"
         For i = 0 To 4
            .ColAlignment(i) = 3
         Next i
    End With
    Command3.Enabled = False
    txtSQL = "select distinct Les_term from Les_info order by Les_term "
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    '初始化学期选择框
    While Not mrc.EOF
        Combo1(0).AddItem mrc.Fields(0)
        mrc.MoveNext
    Wend
    mrc.Close
    '初始化课程名称选择框
    txtSQL = "select distinct Cou_info.Cou_name from Cou_info,Les_info" & _
           " where Cou_info.Cou_no=Les_info.Cou_no"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    While Not mrc.EOF
        Combo1(1).AddItem mrc.Fields(0)
        mrc.MoveNext
    Wend
    mrc.Close
    '初试化教师名选择框
    txtSQL = "select distinct Les_tna from Les_info "
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    While Not mrc.EOF
        Combo1(2).AddItem mrc.Fields(0)
        mrc.MoveNext
    Wend
    mrc.Close
    'cnn1.Close
    Set mrc = Nothing
    Set cnn1 = Nothing
End Sub

Private Sub Text1_Change(Index As Integer) '如果成绩被编辑过,则使保存按钮有效
    If Index = 2 Then Command3.Enabled = True
End Sub

Public Sub Grid_show() 'myFlexGrid 内容显示的过程
    '三个表联合查询,获取选课学生的学号,姓名,成绩,绩点,学分绩点,以及课程的学分,权重系数,是否重修,课程号
    txtSQL = "select Les_info.Stu_no,Stu_info.Stu_name,Les_info.Les_cj,Les_info.Les_jd,Les_info.Les_xj," & _
             " Cou_info.Cou_credit,Cou_info.Cou_power,Les_info.Les_cx,Les_info.Cou_no from Stu_info," & _
             " Les_info,Cou_info  where Les_info.Stu_no=Stu_info.Stu_no" & _
             " and Les_info.Cou_no=Cou_info.Cou_no" & " and Les_info.Les_tna= " & _
             "'" & Trim(Combo1(2).Text) & "'" & " and Cou_info.Cou_name=" & _
             "'" & Trim(Combo1(1).Text) & "'" & " and Les_info.Les_term=" & _
             "'" & Trim(Combo1(0).Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    If mrc.EOF Then
        Exit Sub
    End If
    myFlexGrid.Rows = 1
    While Not mrc.EOF
        With myFlexGrid
             .Rows = .Rows + 1
             .CellAlignment = 2
             Dim i As Integer
             For i = 0 To 4
                If Not IsNull(mrc.Fields(i)) Then
                    .TextMatrix(.Rows - 1, i) = mrc.Fields(i)
                End If
             Next i
        End With
        mrc.MoveNext
    Wend
    mrc.MoveFirst
End Sub

⌨️ 快捷键说明

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