Propiedad TabControl.OldValue (Access)

Utilice la propiedad OldValue para determinar el valor no editado de un control enlazado. Variant de solo lectura.

Sintaxis

expresión. Oldvalue

Expresión Variable que representa un objeto TabControl .

Comentarios

La propiedad OldValue contiene los datos sin editar de un control dependiente y es de sólo lectura en todas las vistas.

Microsoft Access utiliza la propiedad OldValue para almacenar el valor original de un control dependiente. Cuando se edita un control dependiente en un formulario, los cambios no se guardan hasta que mueva a otro registro. La propiedad OldValue contiene la versión sin editar de los datos subyacentes.

Puede proporcionar su propia capacidad de deshacer asignando el valor de la propiedad OldValue a un control. En el ejemplo siguiente se muestra cómo puede deshacer los cambios en los controles de cuadro de texto de un formulario.

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

Si el control no ha sido modificado, este código no tiene ningún efecto. Se actualiza cuando desplaza a otro registro, el origen de registros, por lo que el valor actual y la propiedad OldValue será el mismo.

El valor de la propiedad OldValue tiene los mismos datos escriba como el campo al que está enlazado el control.

Ejemplo:

En el siguiente ejemplo se comprueba para determinar si los nuevos datos insertados en un campo están dentro de 10 por ciento del valor de los datos originales. Si el cambio es mayor que 10 por ciento, la propiedad OldValue se utiliza para restaurar el valor original. Se podría llamar a este procedimiento desde el evento BeforeUpdate del control que contiene los datos que desea validar.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.