'This sample assumes that you have a Constituent Export _
set up with the Name filed, the System Record ID field _
and then two VBA User Fields
'List the columns in the output of the Export
Const NAME = 1
Const ID_FIELD = 2
Const VB_FIELD = 3
Const VB_Field2 = 4
If oRow.BOF Then
'This code will be processed once (at the beginning of the file).
' Here you would connect to an external database or run setup code
MsgBox "Begin processing"
ElseIf oRow.EOF Then
'This code will be processed once (at the end of the file).
' Here you would disconnect/close external databases if needed or run
' end of processing code
MsgBox "End processing"
'This code will be processed once per row
Dim oCon As CRecord
Set oCon = New CRecord
Dim oInd As CIndividual
Dim lID As Long
'get the id
lID = oRow.Field(ID_FIELD)
'Determine if the record is an individual
If oCon.Fields(RECORDS_fld_KEY_INDICATOR) = bbki_INDIVIDUAL Then
For Each oInd In oCon.Relations.Individuals
'Loop through individual relationships to find spouse
If oInd.Fields(INDIVIDUAL_fld_IS_SPOUSE) = True Then
'Compare spouse last name with constituent last name
If oInd.Fields(INDIVIDUAL_fld_LAST_NAME) <> oCon.Fields(RECORDS_fld_LAST_NAME) Then
'Assign the value for the first VBA User Field
oRow.Field(VB_FIELD) = "Different last name"
'Assign the value for the second VBA User Field
oRow.Field(VB_Field2) = oCon.Fields(RECORDS_fld_GENDER)
Set oCon = Nothing
Note: In this example the following fields must be selected in the order listed in Export: Name, System Record ID, VBA User Field,VBA User Field. The code must be in the System_Macros project to be selected in Tools, Export Options, VBA Macro.
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.