在做修改成绩信息时,遇到了这样的问题:如果把记录都删除完了,没有记录了,还是点击修改记录之后,就会弹出一个对话框:
点击确定之后,修改记录的窗体还是会出来,
点击任何一个按钮,都会出现如下错误:
于是就想能不能把没有记录后的修改信息这个窗体隐藏了,原代码:
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