Propriété Control.OldValue (Access)
Utilisez la propriété OldValue pour déterminer la valeur non modifiée d’un contrôle lié. Variant en lecture seule.
Syntaxe
expression. Oldvalue
Expression Variable qui représente un objet Control .
Remarques
La propriété OldValue contient la valeur non modifiée d'un contrôle dépendant et est en lecture seule dans tous les modes.
Microsoft Access utilise la propriété OldValue pour stocker la valeur d'origine d'un contrôle dépendant. Lorsque vous modifiez un contrôle dépendant dans un formulaire, les modifications ne sont pas enregistrées jusqu'à ce que vous passez à un autre enregistrement. La propriété OldValue contient la version non modifiée des données sous-jacentes.
Vous pouvez fournir votre propre fonction d'annulation en attribuant la valeur de la propriété OldValue à un contrôle. L’exemple suivant montre comment annuler les modifications apportées aux contrôles de zone de texte d’un formulaire.
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 le contrôle n'a pas été modifié, ce code n'a aucun effet. Lorsque vous passez à un autre enregistrement, la source d'enregistrement est mis à jour, afin que la valeur actuelle et la propriété OldValue sera la même.
Le paramètre de la propriété OldValue a les mêmes données de type que le champ auquel le contrôle est lié.
Exemple
L'exemple suivant montre comment pour déterminer si les nouvelles données entrées dans un champ sont de 10 pour cent de la valeur des données d'origine. Si la modification est supérieure à 10 pour cent, la propriété OldValue est utilisée pour restaurer la valeur d'origine. Cette procédure peut être appelée à partir de l’événement BeforeUpdate du contrôle qui contient les données que vous souhaitez valider.
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
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.