Свойство Control.OldValue (Access)
Используйте свойство OldValue , чтобы определить неотредованное значение привязанного элемента управления. Только для чтения, Variant.
Синтаксис
expression. Oldvalue
Выражение Переменная, представляющая объект Control .
Замечания
Свойство OldValue содержит неотредованные данные из привязанного элемента управления и доступно только для чтения во всех представлениях.
Microsoft Access использует свойство OldValue для хранения исходного значения привязанного элемента управления. При изменении привязанного элемента управления в форме изменения не сохраняются, пока вы не перейдете в другую запись. Свойство OldValue содержит неотредованную версию базовых данных.
Вы можете предоставить собственную возможность отмены, назначив элементу управления параметр свойства OldValue . В следующем примере показано, как отменить любые изменения в элементах управления "Текстовое поле" в форме.
Private 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
Если элемент управления не был изменен, этот код не будет действовать. При переходе на другую запись источник записи обновляется, поэтому текущее значение и свойство OldValue будут одинаковыми.
Параметр свойства OldValue имеет тот же тип данных, что и поле, к которому привязан элемент управления.
Пример
В следующем примере проверяется, что новые данные, введенные в поле, не равны 10 процентам от значения исходных данных. Если изменение превышает 10 процентов, свойство OldValue используется для восстановления исходного значения. Эту процедуру можно вызвать из события BeforeUpdate элемента управления, содержащего данные, которые требуется проверить.
Public Sub Validate_Field()
Dim curNewValue As Currency
Dim curOriginalValue As Currency
Dim curChange As Currency
Dim strMsg As String
curNewValue = Forms!Products!UnitPrice
curOriginalValue = Forms!Products!UnitPrice.OldValue
curChange = Abs(curNewValue - curOriginalValue)
If curChange > (curOriginalValue * .1) Then
strMsg = "Change is more than 10% of original unit price." _
& "Restoring original unit price."
MsgBox strMsg, vbExclamation, "Invalid change."
Forms!Products!UnitPrice = curOriginalValue
End If
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.