Propiedad ComboBox.OldValue (Access)
Utilice la propiedad OldValue para determinar el valor no editado de un control enlazado. Variant de solo lectura.
expresión. Oldvalue
Expresión Variable que representa un objeto ComboBox .
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.
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
¿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.