学生系统优化(2)之 禁止循环,文本框“空”不能修改信息,3021错误

这两个问题也是研究了一天,通过资料的搜集和更改以及所有资料的完整结合,终于实现这一功能。

(1)首先是禁止循环,这一问题,用了一个很简单的“Enable”,当移动到最后一条或第一条数据时,若继续单机,则提示信息,并且,控件不能使用,也就是“Enable”设置为“False”,基本代码如下

Private Sub cmdnext_Click()
    cmdLast.Enabled = True
    cmdFirst.Enabled = True
    cmdPrevious.Enabled = True
    mrc.MoveNext
    If mrc.EOF Then
        cmdNext.Enabled = False
        MsgBox "已经最后一条记录", vbOKOnly + vbExclamation, "提示"
    Else
        Call viewData
        cmdNext.Enabled = True
    End If
    
End Sub
Private Sub cmdprevious_Click()
    cmdLast.Enabled = True
    cmdFirst.Enabled = True
    cmdNext.Enabled = True
    mrc.MovePrevious
    If mrc.BOF Then
        cmdPrevious.Enabled = False
        MsgBox "已经最后一条记录", vbOKOnly + vbExclamation, "提示"
    Else
        Call viewData
        cmdPrevious.Enabled = True
    End If
End Sub

此代码,以Cmdnext和Cmdprevious为基础。

(2)第二个问题就是再修改信息是,如果文本框为空时,禁止添加,这样也是为了方便,很简单,就是添加一个判断语句,判断文本框是否为空即可,代码如下:

    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
        If Trim(comboGrade.Text) = "" Then
            MsgBox "请输入年级", vbOKOnly + vbExclamation, "提示"
            comboGrade.SetFocus
            
        Else
            If Trim(txtDirector.Text) = "" Then
                MsgBox "请输入班主任姓名", vbOKOnly + vbExclamation, "提示"
                txtDirector.SetFocus
                
           Else
                If Trim(txtClassroom.Text) = "" Then
                    MsgBox "请输入教室", vbOKOnly + vbExclamation, "提示"
                    txtClassroom.SetFocus
 
              Else
                    If Trim(txtClassno.Text) = "" Then
                        MsgBox "请输入班号", vbOKOnly + vbExclamation, "提示"
                        txtClassno.SetFocus
                        
                    Else
                         mrc.Delete
                        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
                        Frame2.Enabled = True
                        cmdFirst.Enabled = True
                        cmdPrevious.Enabled = True
                        cmdNext.Enabled = True
                        cmdLast.Enabled = True
                        
                        txtClassno.Enabled = False
                        comboGrade.Enabled = False
                        txtDirector.Enabled = False
                        txtClassroom.Enabled = False
                                
                        mcclean = True
                    End If
                End If
            End If
        End If
    End If
End Sub

以上只是修改的进行判断的代码。

上面的代码要注意一个问题,那就是mrc.delete的位置,如果位置不对,那么可能也会出现错误,

(3)关于3021的错误,在”修改班级信息最后一条记录“时会出现这个错误,既然出现了那就想办法解决。出现此错误,就引用此错误

Private Sub cmddelete_Click()
On Error GoTo dateerr
    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
dateerr:
    If Err = 3021 Then
            MsgBox "已经没有数据了,是否添加数据", vbOKOnly + vbExclamation, "提示"
            If vbOK Then
                frmAddclassinfo.Show
                Me.Hide
            Else
                txtClassno.Text = "'"
                comboGrade.Text = ""
                txtDirector.Text = ""
                txtClassroom.Text = ""
            End If
    End If
End Sub

猜你喜欢

转载自blog.csdn.net/weixin_43267344/article/details/86555920
今日推荐