学生信息管理系统———隐藏窗体——BUG调试

文章详细介绍了在成绩管理系统中遇到的问题:在无成绩记录时仍显示修改成绩信息窗体导致的错误。通过在显示窗体前增加判断条件,解决了这一问题。同时强调了断点调试在定位和解决问题过程中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做修改成绩信息时,遇到了这样的问题:如果把记录都删除完了,没有记录了,还是点击修改记录之后,就会弹出一个对话框:

点击确定之后,修改记录的窗体还是会出来,


点击任何一个按钮,都会出现如下错误:

于是就想能不能没有记录修改信息这个窗体隐藏了,代码:

Private Sub Form_Load()     '加载窗体
             
             Dim txtSQL As String
             Dim msgtext As String
             
             comboClassno.Enabled = False        '使控件无效
             ComboExamtype.Enabled = False
             ComboSID.Enabled = False
             txtName.Enabled = False
             comboCourse.Enabled = False
             txtResult.Enabled = False
             updateCommand.Enabled = False
             cancelCommand.Enabled = False
            
            
             txtSQL = "select*from result_Info"       '查询result语句
             Set mrc = ExecuteSQL(txtSQL, msgtext)

             If mrc.EOF = False Then         '查看是否有记录,如果有则移动到第一条并做标记,如果没有则显示“没有记录”

                 mrc.MoveFirst
                 myBookmark = mrc.Bookmark

                 Call viewData

             Else
                 MsgBox "没有记录!", vbOKOnly + vbExclamation, "警告"

                 Exit Sub

            End If
            
                    
           Me.Left = (Screen.Width - Me.Width) / 2
           Me.Top = (Screen.Height - Me.Height) / 2
             
End Sub

原因是它在显示没有记录后,就会自动调用修改信息这个窗体,

Private Sub modifyresultMenu_Click()

       frmModifyresult.Show
       sbStatusBar.Panels(1).Text = "修改成绩信息"
       
End Sub


让它显示,所以只要在它显示之前做一个判断(没有记录就退出,有记录就显示)就行了。修改代码:

Private Sub modifyresultMenu_Click()
Dim txtSQL As String
Dim msgtext As String


       txtSQL = "select*from result_Info"       '查询result语句
             Set mrc = ExecuteSQL(txtSQL, msgtext)

             If mrc.EOF = False Then         '查看是否有记录,如果有则移动到第一条并做标记,如果没有则显示“没有记录”

                 mrc.MoveFirst
                 myBookmark = mrc.Bookmark

                 Call frmModifyresult.viewData

             Else
                 MsgBox "没有记录!", vbOKOnly + vbExclamation, "警告"

                 Exit Sub

            End If
       frmModifyresult.Show
       sbStatusBar.Panels(1).Text = "修改成绩信息"
       
End Sub


修改之后还是会出现错误,


调试之后总是指向定义的viewdata函数,代码

Public Sub viewData()
            
           ComboExamtype.Text = mrc!exam_No   '把exam_No表中的内容给考试编号
           comboClassno.Text = mrc!class_No
           ComboSID.Text = mrc!student_ID
           txtName.Text = mrc!student_Name
           comboCourse.Text = mrc!course_Name
           txtResult.Text = mrc!result
       
End Sub

会出现这样的错误:原因是调用这个函数之前窗体没有加载,函数中也没有把记录集调出来的语句,这样就是空记录,故会出现错误。修改后代码:

Public Sub viewData()
                        
             txtSQL = "select*from result_Info"       '查询result语句
             Set mrc = ExecuteSQL(txtSQL, msgtext)

           ComboExamtype.Text = mrc!exam_No   '把exam_No表中的内容给考试编号
           comboClassno.Text = mrc!class_No
           ComboSID.Text = mrc!student_ID
           txtName.Text = mrc!student_Name
           comboCourse.Text = mrc!course_Name
           txtResult.Text = mrc!result
      
End Sub

这样修改好了。调试错误过程中,用到更多就是断点调试,引领我们找到问题所在,知道我们找到正确解决方法,所以这个工具应用好,我们清除障碍。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值