您的位置:首页 > 其它

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

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




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



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



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

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


这样就修改好了。在调试错误的过程中,用到的更多的就是断点调试,它能引领我们找到问题的所在,知道我们找到正确的解决方法,所以要把这个工具应用好,为我们清除障碍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: