Propriedade BoundObjectFrame.OldValue (Access)

Use a propriedade OldValue para determinar o valor não editado de um controle vinculado. Somente leitura Variant.

Sintaxe

expressão. Oldvalue

Expressão Uma variável que representa um objeto BoundObjectFrame .

Comentários

A propriedade OldValue contém os dados não editados de um controle acoplado e é somente leitura em todos os modos.

O Microsoft Access usa a propriedade OldValue para armazenar o valor original de um controle acoplado. Quando você edita um controle acoplado em um formulário, suas alterações não são salvas até você ir para outro registro. A propriedade OldValue contém a versão editada dos dados subjacentes.

Você pode fornecer sua própria capacidade de desfazer atribuindo a configuração da propriedade OldValue a um controle. O exemplo a seguir mostra como você pode desfazer quaisquer alterações nos controles de caixa de texto em um formulário.

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

Se o controle não tiver sido editado, esse código não terá efeito. Quando você move para outro registro, a fonte do registro é atualizado.

A configuração da propriedade OldValue tem os mesmos dados tipo o campo ao qual o controle está vinculado.

Exemplo

O exemplo a seguir verifica para determinar se os novos dados inseridos em um campo estão dentro de 10 por cento do valor dos dados originais. Se a alteração for maior que 10 por cento, a propriedade OldValue é usada para restaurar o valor original. Esse procedimento pode ser chamado do evento BeforeUpdate do controle que contém os dados que você deseja 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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.