You can use the OldValue property to determine the unedited value of a bound control.
Setting
The OldValue property contains the unedited data from a bound control and is read-only in all views.
You can access this property only by using a macro or Visual Basic.
The OldValue property can be assigned to a variable by using the following syntax:
OriginalValue = Forms!Customers!AmountPaid.OldValue
Remarks
Microsoft Access uses the OldValue property to store the original value of a bound control. When you edit a bound control on a form, your changes aren't saved until you move to another record. The OldValue property contains the unedited version of the underlying data.
You can provide your own undo capability by assigning the OldValue property setting to a control. The following example shows how you can undo any changes to text box controls on a form:
Sub btnUndo_Click()
Dim ctlTextbox As Control
For Each ctlTextbox in Me.Controls
If ctlTextbox.ControlType = acTextBox Then
ctlTextbox.Value = ctl.OldValue
End If
Next ctlTextbox
End Sub
If the control hasn't been edited, this code has no effect. When you move to another record, the record source is updated, so the current value and the OldValue property will be the same.
The OldValue property setting has the same data type as the field to which the control is bound.