CommandButton.OldValue-Eigenschaft (Access)

Verwenden Sie die OldValue-Eigenschaft , um den unbearbeiteten Wert eines gebundenen Steuerelements zu bestimmen. Schreibgeschützter Variant-Wert.

Syntax

Ausdruck. Oldvalue

Ausdruck Eine Variable, die ein CommandButton-Objekt darstellt.

HinwBemerkungeneise

Die OldValue-Eigenschaft enthält unbearbeitete Daten aus einem gebundenen Steuerelement und ist in allen Ansichten schreibgeschützt.

Microsoft Access verwendet die OldValue-Eigenschaft, um den ursprünglichen Wert eines gebundenen Steuerelements zu speichern. Bearbeiten Sie ein gebundenes Steuerelement in einem Formular, so werden die Änderungen erst gespeichert, wenn Sie zu einem anderen Datensatz wechseln. Die OldValue -Eigenschaft enthält die unbearbeitete Version der zugrunde liegenden Daten.

Sie können eine eigene Funktion zum Rückgängigmachen der letzten Operation implementieren, indem Sie die Einstellung der OldValueld-Eigenschaft einem Steuerelement zuweisen. Das folgende Beispiel zeigt, wie Sie Änderungen an Textfeldsteuerelementen in einem Formular rückgängig machen können.

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

Wurde das Steuerelement nicht bearbeitet, so hat dieser Code keine Auswirkung. Wenn Sie zu einem anderen Datensatz wechseln, wird die Datensatzquelle aktualisiert, sodass der aktuelle Wert und die OldValue-Eigenschaft übereinstimmen.

Die Einstellung der OldValue-Eigenschaft hat denselben Datentyp wie das Feld, an welches das Steuerelement gebunden ist.

Beispiel

Das folgende Beispiel überprüft, ob neu in ein Feld eingegebene Daten mehr als 10 Prozent vom ursprünglichen Wert abweichen. Beträgt die Änderung mehr als 10 Prozent, so wird der ursprüngliche Wert mithilfe der OldValue-Eigenschaft wiederhergestellt. Diese Prozedur kann über das BeforeUpdate-Ereignis des Steuerelements aufgerufen werden, das die daten enthält, die Sie überprüfen möchten.

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.