OldValue 屬性

此頁(yè)沒(méi)有內(nèi)容條目
內(nèi)容

expandtri全部顯示

使用 OldValue 屬性可以確定綁定控件中未編輯的值。Variant 型,只讀。

expression.OldValue

expression     必需。返回“應(yīng)用于”列表中的一個(gè)對(duì)象的表達(dá)式。

說(shuō)明

OldValue 屬性包含的是綁定控件中未編輯的數(shù)據(jù),它在所有視圖中都為只讀。

只有在使用Visual Basic 時(shí)才可以訪問(wèn)該屬性。

通過(guò)使用以下語(yǔ)法,可以將 OldValue 屬性賦給一個(gè)變量。

OriginalValue = Forms!Customers!AmountPaid.OldValue

Microsoft Access 使用 OldValue 屬性來(lái)存儲(chǔ)綁定控件的原始值。在編輯窗體上的綁定控件時(shí),必須在移到其他記錄之后,所作更改才能保存。OldValue 屬性包含的是基礎(chǔ)數(shù)據(jù)編輯前的原始值。

通過(guò)將 OldValue 屬性設(shè)置指派給控件,可以為控件提供撤消功能。下面的示例顯示如何撤消對(duì)窗體的文本框控件所做的更改:

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

如果控件尚未編輯,該代碼就不起作用。當(dāng)移動(dòng)到其他記錄時(shí),記錄源將更新,這樣當(dāng)前值和 OldValue 屬性就一樣了。

OldValue 屬性設(shè)置與控件綁定到的字段有相同的數(shù)據(jù)類(lèi)型。

示例

下面的示例檢查字段中新輸入的數(shù)據(jù),確定新值是否在原始數(shù)據(jù)值的 10% 之內(nèi)。如果更改大于 10%,則使用 OldValue 屬性還原初始值。下列過(guò)程可以從包含要驗(yàn)證數(shù)據(jù)的控件的 BeforeUpdate 事件中調(diào)用。

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