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在进行判断。
这两个问题应该是编辑数据界面,最为常见的问题了,希望能够帮助到大家。