前言:
数据库信息的增加,不可避免的会遇到修改信息的问题。需要注意的是:打开该窗体的时候,所有的文本框的enable属性应该都为false,此时是不能输入的。点击修改记录的时候,所有文本框的enable属性为true。
内容:
1、删除当前记录
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
Else
mrc.Bookmark = myBookmark
Call viewData
End If
2、当前表中没有记录,需提示一下,然后卸载此窗体
txtSQL = "select * from class_Info"
Set mrcc = ExecuteSQL(txtSQL, MsgText)
If (mrcc.RecordCount = 0) = True Then
MsgBox "表中记录为空!", vbOKOnly + vbExclamation, "警告"
Unload Me
End If
3、上一条记录,如果当前是第一条记录,则显示最后一条记录,反之亦然
mrc.MovePrevious
If mrc.BOF Then
mrc.MoveLast
End If
4、如果当前窗体没有记录,显示该窗体的时候会出现“3021”的错误,解决方案
在form的load事件下,添加如下代码:
On Error GoTo dateErr
mrc.MoveFirst
Call viewData
myBookmark = mrc.Bookmark
mcclean = True
dateErr:
If Err = 3021 Then
MsgBox "没有数据", vbOKOnly + vbExclamation, "警告"
End If
5、更新情况下,不允许添加重复的信息
mrc.Delete
txtSQL = "select * from class_Info where class_No= '" & Trim(txtClassno.Text) & "'"
Set mrcc = ExecuteSQL(txtSQL, MsgText)
If mrcc.EOF = False Then
MsgBox "班号重复,请重新输入!", vbOKOnly + vbExclamation, "警告"
mrcc.Close
txtClassno.SetFocus
Else
mrcc.Close
mrc.AddNew
mrc.Fields(0) = Trim(txtClassno.Text)
mrc.Fields(1) = Trim(comboGrade.Text)
mrc.Fields(2) = Trim(txtDirector.Text)
mrc.Fields(3) = Trim(txtClassroom.Text)
mrc.Update
MsgBox "修改班级信息成功!", vbOKOnly + vbExclamation, "警告"
mrc.Bookmark = myBookmark
Call viewData
Frame1.Enabled = True
cmdOK.Enabled = True
cmdPrevious.Enabled = True
cmdLast.Enabled = True
cmdNext.Enabled = True
txtClassno.Enabled = False
comboGrade.Enabled = False
txtDirector.Enabled = False
txtClassroom.Enabled = False
mcclean = True
End If
总结:
修改窗体涉及到的内容挺多的。查看的时候,显示第一条记录,上一条记录,下一条记录和最后一条记录。修改的时候有修改,更新,取消和删除的情况。
最后一条记录的下一条记录应该是第一条,第一条记录的上一条是最后一条,逻辑上应该形成一个循环。
修改记录,对当前的信息进行修改,然后进行更新或者取消修改,最后也可以进行删除记录,删除的时候要考虑到表中没有记录的情况。