《学生信息管理系统》设置课程的一些优化

   课程优化终于完成了!!!非常感谢曹学亮的鼎力相助!!!


《学生信息管理系统》设置课程的一些优化_第1张图片


    窗体上多选按钮可以让用户一次选择多个科目,然后点击"==>>"按钮,科目就被选入了右侧的listbox,同时写入数据库数据,删除同理,最后点击确认,退出课程设置。

    看下代码:


   【1】全部添加按钮

    

Private Sub cmdaddall_Click()
    Dim e As Integer
    Dim f As Integer
    
    For e = 0 To listAllcourse.ListCount - 1 Step 1      '添加选中科目
        If listAllcourse.Selected(e) = True Then
        listSelectCourse.AddItem listAllcourse.List(e)
        End If
    Next e
    
    Call shanchu             '自定义过程,删除重复的课程
    
    MsgBox "课程添加成功!", vbOKOnly + vbInformation, "提示"
    
    '写入数据库,更新数据库
    txtSQL = "select * from gradecourse_Info where grade='" & Trim(comboGrade.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
       
    If mrc.EOF Then
        For i = 1 To listSelectCourse.ListCount
            mrc.AddNew
            mrc.Fields(0) = comboGrade.Text
            mrc.Fields(1) = listSelectCourse.List(i - 1)
            mrc.Update
        Next i
        mrc.Close
        MsgBox "该年级的课程设置成功!", vbOKOnly + vbInformation, "提示"
    Else
        mrc.Close
        txtSQL = "DELETE from gradecourse_Info where grade='" & Trim(comboGrade.Text) & "'"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
        
        txtSQL = "select * from gradecourse_Info"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
        
        For i = 1 To listSelectCourse.ListCount
            mrc.AddNew
            mrc.Fields(0) = comboGrade.Text
            mrc.Fields(1) = listSelectCourse.List(i - 1)
            mrc.Update
        Next i
        mrc.Close
        MsgBox "该年级的课程设置成功!", vbOKOnly + vbInformation, "提示"
    End If
End Sub


    【2】全部删除按钮


    相比上面“全部添加按钮”写入数据库的代码,这个按钮的写入数据库代码非常简单有效,上面的代码还可以优化,就是右侧课程在前端的listbox控件正确添加完成后,后台sql server先删除数据库中对应年级的全部课程数据,重新写入该年级的所选科目,也就是下面的代码


Private Sub cmddeleteall_Click()
    Dim mrc As ADODB.Recordset
    
    For g = listSelectCourse.ListCount - 1 To 0 Step -1
        If listSelectCourse.Selected(g) = True Then
            listSelectCourse.RemoveItem g
        End If
    Next g
    
    Call shanchuleft

    txtSQL = "DELETE from gradecourse_Info where grade='" & Trim(comboGrade.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    txtSQL = "select * from gradecourse_Info where grade='" & Trim(comboGrade.Text) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    
    For i = 0 To listSelectCourse.ListCount - 1
        mrc.AddNew
        mrc.Fields(0) = comboGrade.Text
        mrc.Fields(1) = listSelectCourse.List(i - 1)
        mrc.Update
    Next i
    
End Sub


   【3】自定义删除重复科目过程


'自定义过程,删除重复的科目

Private Sub shanchu()
    For a = 0 To listSelectCourse.ListCount - 1 Step 1
        For b = a + 1 To listSelectCourse.ListCount - 1 Step 1
            If listSelectCourse.List(a) = listSelectCourse.List(b) Then
                listSelectCourse.RemoveItem b
            End If
        Next b
    Next a
End Sub

'同样是删除重复的科目,这次是删除左侧listbox框里的数据

Private Sub shanchuleft()
    For m = 0 To listAllcourse.ListCount - 1 Step 1
        For n = m + 1 To listAllcourse.ListCount - 1 Step 1
            If listAllcourse.List(m) = listAllcourse.List(n) Then
                listAllcourse.RemoveItem n
            End If
        Next n
    Next m
End Sub



         【4】单选按钮


Private Sub cmdAdd_Click()   '单选按钮的单击事件
    If listAllcourse.ListIndex <> -1 Then
        listSelectCourse.AddItem listAllcourse.List(listAllcourse.ListIndex)
    End If
    
    Call shanchu
   
End Sub

Private Sub cmdDelete_Click()
    If listSelectCourse.ListIndex <> -1 Then
        listSelectCourse.RemoveItem listSelectCourse.ListIndex
    End If
    
    Call shanchuleft
    
End Sub

你可能感兴趣的:(优化,数据库,学生信息管理系统)