学生优化(七)-----修改数据界面,显示更新成功的两个问题

1.没有修改数据依旧显示更新成功

修改数据界面  点击修改记录---->更新数据,这期间没有修改数据,仍然会提示更新成功

解决方法:增加查询语句的条件数,然后进行判重。

Private Sub cmdUpdate_Click()
    Dim txtSQL As String
    Dim MsgText As String
    Dim mrcc As ADODB.Recordset
If mrc.EOF And mrc.BOF Then
        str1 = MsgBox("没有课程信息,是否添加课程信息", vbOKCancel, "警告")

         If str1 = vbOK Then
             frmAddcourseinfo.Show
            frmModifycourseinfo.Hide
        
         End If
Else
   '判断是否处于修改状态   mcclean=false时表示处于修改状态
    If mcclean Then
        MsgBox "请先修改课程信息", vbOKOnly + vbExclamation, "警告"
        Exit Sub
    End If
    '判断课程编号是否为空
    If Not Testtxt(txtCourseno.Text) Then
        MsgBox "请先修改课程编号", vbOKOnly + vbExclamation, "警告"
        txtCoursename.SetFocus
        Exit Sub
    End If
    If Not Testtxt(txtCoursename.Text) Then
        MsgBox "请先修改课程名字", vbOKOnly + vbExclamation, "警告"
        txtCoursename.SetFocus
        Exit Sub
    End If
    If Not Testtxt(comboCoursetype.Text) Then
        MsgBox "请先修改课程类型", vbOKOnly + vbExclamation, "警告"
        comboCoursetype.SetFocus
        Exit Sub
    End If


   ’这句是修改的重点!!!!!


   txtSQL = "select * from course_Info where course_No= '" & Trim(txtCourseno.Text) & "' and course_Name='" & Trim(txtCoursename.Text) & "' and course_Type='" & Trim(comboCoursetype.Text) & "' and course_Des='" & Trim(txtCoursedes.Text) & "'"



        '判断是否有重复记录
'        mrc.Delete            这句和下面txtsql语句注释掉。没有用
'        txtSQL = "select * from course_info where course_no='" & Trim(txtCourseno.Text) & "'"
        Set mrcc = ExecuteSQL(txtSQL, MsgText)
        If mrcc.EOF = False Then
            MsgBox "数据重复,没有修改,请重新修改!", vbOKOnly + vbExclamation, "警告"
            mrcc.Close
            txtCourseno.SetFocus
        Else
            mrcc.Close
'            mrc.AddNew
            mrc.Fields(0) = Trim(txtCourseno.Text)
            mrc.Fields(1) = Trim(txtCoursename.Text)
            mrc.Fields(2) = Trim(comboCoursetype.Text)
            mrc.Fields(3) = Trim(txtCoursedes.Text)
            '                   if mrc
            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
            '使各个文本框失效
            txtCourseno.Enabled = False
            txtCoursename.Enabled = False
            comboCoursetype.Enabled = False
            txtCoursedes.Enabled = False
            
            mcclean = True
            
        End If
    End If
    
End Sub

2.点击修改-->取消修改-->更新数据,显示更新成功

背景:在我们先点击修改记录后点击取消修改,再点击保存修改时,虽然我们没有修改东西,但是它仍会报,更新成功。

Private Sub cmdCancel_Click()
    '判断是否处于修改状态
    If Not mcclean Then
        '使各个按钮有效
        Frame2.Enabled = True
        cmdFirst.Enabled = True
        cmdPrevious.Enabled = True
        cmdNext.Enabled = True
        cmdLast.Enabled = True
        '使各个文本框失效
       txtCoursename.Enabled = False
        txtCourseno.Enabled = False
        comboCoursetype.Enabled = False
        txtCoursedes.Enabled = False
        
        '回到开始记录位置
        If mrc.EOF And mrc.BOF Then
            str1 = MsgBox("没有课程信息,是否添加课程信息?", vbOKCancel, "提示")
    
             If str1 = vbOK Then
                 frmAddcourseinfo.Show
                frmModifycourseinfo.Hide
            
             End If
        Else
            mrc.Bookmark = myBookmark
            Call viewData
        End If
    Else
        MsgBox "什么都没有修改,你取消什么???", vbOKOnly + vbExclamation, "警告”"
    End If
    
End Sub

更改后代码

Private Sub cmdCancel_Click()
    '判断是否处于修改状态
    If Not mcclean Then
        '使各个按钮有效
        Frame2.Enabled = True
        cmdFirst.Enabled = True
        cmdPrevious.Enabled = True
        cmdNext.Enabled = True
        cmdLast.Enabled = True
        '使各个文本框失效
       txtCoursename.Enabled = False
        txtCourseno.Enabled = False
        comboCoursetype.Enabled = False
        txtCoursedes.Enabled = False
        
        '回到开始记录位置
        If mrc.EOF And mrc.BOF Then
            str1 = MsgBox("没有课程信息,是否添加课程信息?", vbOKCancel, "提示")
    
             If str1 = vbOK Then
                 frmAddcourseinfo.Show
                frmModifycourseinfo.Hide
            
             End If
        Else
            mrc.Bookmark = myBookmark
            Call viewData
        End If
    Else
        MsgBox "什么都没有修改,你取消什么???", vbOKOnly + vbExclamation, "警告”"
    End If
     mcclean = True      '这里是修改的重点
        
End Sub

两段代码的差别就只有最后一句mcclean=true 这句。其他的地方没有区别。

再点击修改记录时,他的mcclean为false,在这里面我们把mcclean作为判断数据是否修改的一个标志 mcclean=true是表示我现在的数据未修改  ,点击取消修改,应该将mcclean的属性变为true告诉系统我现在这个数据没有修改。在点击更新的时候根据mcclean在进行判断。

这两个问题应该是编辑数据界面,最为常见的问题了,希望能够帮助到大家。

 

发布了31 篇原创文章 · 获赞 4 · 访问量 2296

猜你喜欢

转载自blog.csdn.net/weixin_44663188/article/details/100033228