一、ComboBox下拉重复
运行学生系统后添加班号信息,出现重复选项,不是很合理,需要优化它!出现这种情况的原因有几下几点。
1、程序代码可能是有重复的地方
2、程序代码的逻辑不合理,相关代码的位置不合理
3、别的地方还应该还有这个代码
通过检查我的代码以上几点都被排除,那最后就找到找到相关的代码,分析分析逻辑关系。
最后检查是红框中这段代码有问题,在红框上边已经写出了下来选项,红框中还读取了数据库里面添加后的班级信息,所以这就是在我没有添加之前没有出现这个问题的原因,添加了信息之后读取了数据库里的内容,把这段代码屏蔽掉就好了。
因为之前我只添加了一和二两个班级所以多出了1和2.
二、班号重复、同步
还是上边的问题,虽然不重复了,但是他和其他窗体时相关联的
添加班级信息-添加学籍信息-添加成绩信息
我们先添加的是班级的信息它当中的班号要与成绩信息与成绩信息里的班号同步才行。
如何才能同步呢?
首先我们在添加成绩信息窗体中找到选择班号
属性窗口命名为comboClassno 我们找到它读取数据库的代码,这里教给大家一个快速查找的方法
Ctrl+F会出现查找对话框,输入上要查找的代码就直接可以找到了。
最后轻松的查找到了我们需要的读取数据库的代码了,把这一段代码复制到“添加学籍信息”里
这样我们在添加学号时就不会出现班号重复、不同步的情况了。
在添加“班级信息”里添加的是多少班号在“添加学籍信息”和“添加成绩信息”中的班号下拉菜单里就是什么班号。
三、设置年级课程信息窗体的防止重复添加
在设置课程的过程中我们一不小心就会出现重复添加的情况,在添加已有课程的时候我们也会出现类似的情况。如果课程信息少或者知道会出现重复添加的情况,我们稍加注意即可,但是如果这真的是一个准备发布的软件呢?我们总不能要求操作者注意这种情况的发生吧,再说如果添加的课程信息过多也会出现操作者也不知道自己是否已经添加。
好在软件不是功能最强大的,但一定是最人性的。其实我们防止重复的事情发生使用循环就行了,如下:
Private Sub cmdAdd_Click()
Dim selectcourse As Integer
Dim i As Integer
Dim j As Integer
For selectcourse = 0 To listAllcourse.ListCount - 1
If listAllcourse.Selected(selectcourse) = True Then
listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex)
'向listselectcourse列表中添加课程
For i = 0 To listSelectcourse.ListCount - 1
For j = i + 1 To listSelectcourse.ListCount
'判断在list列表中是否有相同的名称
If listSelectcourse.List(i) = listSelectcourse.List(j) Then
listSelectcourse.RemoveItem j
MsgBox "已添加此课程!", vbOKOnly + vbExclamation, "提示"
Exit Sub
End If
Next j
Next i
End If
Next selectcourse
End Sub
最后这就是限制重复添加的效果。