学生信息管理系统——优化篇(2)

1.CheckBox

如何让checkbox实现,点击时,文本框出现,复点击时,文本框消失

Private Sub Check1_Click(Index As Integer)
    If Check1(0).Value = 0 Then
        txtSID.Visible = False
    Else
        txtSID.Visible = True
    End If
    
    If Check1(1).Value = 0 Then
        txtName.Visible = False
    Else
        txtName.Visible = True
    End If
    
    If Check1(2).Value = 0 Then
        txtClassno.Visible = False
    Else
        txtClassno.Visible = True
    End If
    
End Sub

2.不重复添加课程(变啦,于富给讲明白啦)

Private Sub cmdAdd_Click()
    Static b As Integer
    Dim s As String
    Dim w As Integer

    If listAllcourse.ListIndex <> -1 Then

    For b = 0 To listSelectcourse.ListCount - 1
    
        If listSelectcourse.List(b) = listAllcourse.List(listAllcourse.ListIndex) Then
    
            MsgBox "不能重复添加课程"
            w = 3
        End If
    Next
        If w = 3 Then
            Exit Sub
        Else
            listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex)
    
        End If
    End If
End Sub

所有课程里的索引值不等于-1,索引值一般是从0开始,因此,如果索引值不等于-1的话,即已经选中了所有课程中的某一课程。

然后进行循环判断,从“已选择课程”中的第一条记录开始,到最后一条记录,依次与所选课程进行判断。

如果“已选择课程”中的某行数据与选中的课程名称一致,则弹框体质“不能重复添加课程”

因为验项目之前,是直接看的于富的博客,所以不太理解 w=3 是什么意思,刚刚于富给讲了一下,讲得和细致。

w=3其实就是一种表示,表示的内容就是内容重复,不可添加

遇到重复的情况,就退出这部分,重新选择。

但如果不重复的话,就添加成功。

起初想,如果没有 w=3 的部分,是不是也可以,其实是不行的,如果没有下面的再次判断,效果是这样的:

Private Sub cmdAdd_Click()
    Static b As Integer
    Dim s As String
    Dim w As Integer

    If listAllcourse.ListIndex <> -1 Then

    
        If listSelectcourse.List(b) = listAllcourse.List(listAllcourse.ListIndex) Then
    
            MsgBox "不能重复添加课程"
           
        Else
            listSelectcourse.AddItem listAllcourse.List(listAllcourse.ListIndex)
    
        End If
    End If
End Sub

(代码中list(b)部分不符合语法规范,懂意思即可)

这种情况的话,只会进行一次判断,如果“已选择课程”中的第一条记录与选中记录不重复,就可以重复添加,但如果“已选择课程”中有多条记录,后面即便是有重复记录存在,也是可以成功添加的。

3.当删除最后一条记录时,能顺利删除

If mrc.EOF Then
        MsgBox "数据库中已无记录,请先添加新的记录!", 48, "警告"
        Unload Me
        Exit Sub
    Else


    myBookmark = mrc.Bookmark
    str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
        If str2$ = vbOK Then
            mrc.MoveNext
            If mrc.EOF Then
                mrc.MoveFirst
                myBookmark = mrc.Bookmark
                mrc.MoveLast
                mrc.Delete
                mrc.Bookmark = myBookmark
'                Call viewData    因记录已经删除,所以不必调用
            Else
                myBookmark = mrc.Bookmark
                mrc.MovePrevious
                mrc.Delete
                mrc.Bookmark = myBookmark
                Call viewData
            End If

        End If

    End If
End Sub

4.通过班号找到学号

添加成绩时,就逻辑问题理了痕久,理清后发现,这趟逻辑还真是蛮厉害的。

(1)通过班号找到学号

(2)通过学号对应姓名

(3)通过在所有课程中选择课程

(4)输入学生分数

上面的class_NO,原本写的是student_ID, 发现当添加成绩时,选择了班级,学号却只出现一个,于是再次查看了SQL ,有理了一下逻辑,发现,既然是通过班号,找学生学号,就应该将学号改成班级,哈哈,豁然开朗呀。

还会再添加部分函数解说,静等我验完哈

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值