数据库重复加载问题

          学生信息管理系统做完了,但是在运行的时候,出现了很多错误。当程序运行到设置课程的时候,出现了重复加载的问题,就是当你点击设置课程或加载按钮时,课程内容会重复添加,结果如下图:

数据库重复加载问题_第1张图片

          这两个问题其实是一个问题,就是没有判断文本框是否已经添加课程。第一个问题简单一点,因为只添加一次,先来解决这个问题。要解决这个问题,我们使用了列表框的listcount属性,这个属性刚好是记录列表框中记录的属性,如果等于0,则没有记录,如果不为0,则表示已经添加了课程。代码如下:

Private Sub cmdSet_Click()             
    Dim mrc As ADODB.Recordset
    Dim txtSQL As String
    Dim MsgText As String
                                               
    listAllcourse.Enabled = True
    listSelectcourse.Enabled = True
    cmdModify.Enabled = True
   
    txtSQL = "select * from course_Info "
    Set mrc = ExecuteSQL(txtSQL, MsgText)
                                                               
    If listAllcourse.ListCount = 0 Then           '判断列表框中是否有记录                                                   
        While (mrc.EOF = False)                  
            listAllcourse.AddItem mrc.Fields(1)   '将所有记录放在文本框中
            mrc.MoveNext
        Wend
        mrc.Close                                              '关闭连接
    Else
        MsgBox "课程已经加载完成,不用重复加载!", vbOKOnly + vbExclamation, "警告"
    End If
   
    flagSet = True                                
End Sub

 第二个问题稍微复杂一点,我们判断每一条记录是否重复,所以,要用循环的方法判断是否重复。首先,我们选中一条记录,准备添加,然后用do   ......loop语句循环判断选中的语句是否已经被添加。我们用循环次数作为已添加记录的索引。代码如下:

Private Sub cmdAdd_Click()

   Dim intCount  As Integer
    If listAllcourse.ListIndex <> -1 Then  '所有课程里边被选中的选项
        intCount = 0  '循环次数
                                         '添加课程不重复
        Do While intCount < listSelectcourse.ListCount
        '选中的选项依次跟选择课程里边的比较,所以比较次数刚好比选项少一个
           If listAllcourse.List(listAllcourse.ListIndex) = listSelectcourse.List(intCount) Then
           '判断是否重复,参数选择很重要。
                MsgBox "选择课程重复,请重新选择"
           Exit Sub
           End If
          
           intCount = intCount + 1  '循环次数
        Loop
        listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex)
        '添加所选课程
    End If

End Sub

运行结果如下:当我们第二次点击设置课程按钮时:

数据库重复加载问题_第2张图片

当我们添加重复课程时:

数据库重复加载问题_第3张图片

问题成功解决!

 

你可能感兴趣的:(数据库)