Public Sub Constituent_BeforeSave(oRecord As Object, bCancel As Boolean)

   Dim oNew As CRecord

   Set oNew = oRecord

   Dim oOld As CRecord

   Set oOld = New CRecord

   oOld.Init REApplication.SessionContext

   'Load by System Record ID

   'oOld contains the data from the last saved version in the database

   oOld.Load oNew.Fields(RECORDS_fld_ID)

   Debug.Print "oNew:" & oNew.Fields(RECORDS_fld_CONSTITUENT_ID)

   Debug.Print "oOld:" & oOld.Fields(RECORDS_fld_CONSTITUENT_ID)

   If oNew.Fields(RECORDS_fld_CONSTITUENT_ID) <> oOld.Fields(RECORDS_fld_CONSTITUENT_ID) Then

       MsgBox "Please do not change Constituent ID"

       bCancel = True

   End If

   oOld.Closedown

   Set oOld = Nothing

   Set oNew = Nothing

End Sub

Disclaimer: We provide programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes you are familiar with Microsoft Visual Basic and the tools used to create and debug procedures. Our Customer Support can help explain the functionality of a particular procedure, but we will not modify, or assist you with modifying, these examples to provide additional functionality. If you are interested in learning more about the VBA and API modules, contact your account manager.