学生信息管理系统———隐藏窗体——BUG调试
在做修改成绩信息时,遇到了这样的问题:如果把记录都删除完了,没有记录了,还是点击修改记录之后,就会弹出一个对话框:
点击确定之后,修改记录的窗体还是会出来,
点击任何一个按钮,都会出现如下错误:
于是就想能不能把没有记录后的修改信息这个窗体隐藏了,原代码:
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 StringDim 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
这样就修改好了。在调试错误的过程中,用到的更多的就是断点调试,它能引领我们找到问题的所在,知道我们找到正确的解决方法,所以要把这个工具应用好,为我们清除障碍。
- 8楼hejingyuan65分钟前
- 方法有很多,只要我们多思考,加油
- Re: liutengteng1305分钟前
- 回复hejingyuan6n嗯啊,加油。
- 7楼hxj135812昨天 20:45
- 腾腾,加油!
- Re: liutengteng1303小时前
- 回复hxj135812n[e04]一起加油哈。
- 6楼liujiahan629629昨天 10:22
- 把改过的地方表示出来更好,都得找老半天了!
- Re: liutengteng130昨天 10:24
- 回复liujiahan629629n恩恩,谢谢。
- 5楼kanglix1an昨天 09:53
- 加油啊~~
- Re: liutengteng130昨天 09:54
- 回复kanglix1ann嗯啊,一起加油。
- 4楼xvshu昨天 09:53
- 学习喽!
- Re: liutengteng130昨天 09:53
- 回复xvshun加油[e03]
- 3楼zuozuo1245昨天 08:38
- 顶一个。我也遇到了。。。
- Re: liutengteng130昨天 09:52
- 回复zuozuo1245n呵呵,加油。
- 2楼lyg673770712昨天 08:15
- 。。。办法总比困难多
- Re: liutengteng130昨天 08:18
- 回复lyg673770712n[e04]
- 1楼beijiguangyong昨天 08:12
- 工欲善其事,必先利其器
- Re: liutengteng130昨天 08:13
- 回复beijiguangyongn嗯,[e04]