如果在MsgBox
提示符处,用户选择“否”,我试图恢复原始值。但是,这种情况并没有发生。你能看看我哪里出错吗?
Private Sub txtNov2_AfterUpdate()
Dim x As Integer
Dim NewValue As Integer
Dim OrigValue As Integer
NewValue = Me.txtNov2.Value
OrigValue = [Forms]![DataEntry]![txtNov2].OldValue 'Me.txtNov2.OldValue
If NewValue <> OrigValue Then
x = MsgBox("Value Has Changed Do you Want to Update?", vbQuestion + vbYesNo, "Value Change")
If x = vbYes Then
MsgBox ("Please Press Update Button")
btnUpdateData2.SetFocus
Else
txtNov2.SetFocus
'Me.Undo
txtNov2.Value = OrigValue
'Cancel = True
End If
End If
End Sub
答案 0 :(得分:0)
在我看来,你的代码正在发挥作用。我打开表格......
...并将值从123
更改为124
...
...然后当我点击[Tab]键以使控件失去焦点时,我得到了MsgBox
......
...如果我选择“否”,则该值将恢复为123
该状态与初始状态(我第一次打开表单时)之间的唯一区别是表单仍然是“脏”的,如表单左侧记录选择器中的“铅笔”图标所示。如果您想完全撤消对表单的所有更改,请尝试替换...
Else
txtNov2.SetFocus
'Me.Undo
txtNov2.Value = OrigValue
'Cancel = True
End If
...与...
Else
DoCmd.RunCommand acCmdUndo
End If