确认在Access表单上更改为值的提示

时间:2013-04-14 06:16:00

标签: access-vba ms-access-2010

如果在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

1 个答案:

答案 0 :(得分:0)

在我看来,你的代码正在发挥作用。我打开表格......

original

...并将值从123更改为124 ...

changed

...然后当我点击[Tab]键以使控件失去焦点时,我得到了MsgBox ......

msgbox

...如果我选择“否”,则该值将恢复为123

reverted

该状态与初始状态(我第一次打开表单时)之间的唯一区别是表单仍然是“脏”的,如表单左侧记录选择器中的“铅笔”图标所示。如果您想完全撤消对表单的所有更改,请尝试替换...

Else
    txtNov2.SetFocus
    'Me.Undo
    txtNov2.Value = OrigValue
    'Cancel = True
End If

...与...

Else
    DoCmd.RunCommand acCmdUndo
End If