Public Sub AddParticipantAttribute()

   

   Dim oService As REServices

   Set oService = New REServices

   oService.Init REApplication.SessionContext



   Dim oAttributeServer As CAttributeTypeServer

   Set oAttributeServer = oService.CreateServiceObject(bbsoAttributeTypeServer)

   oAttributeServer.Init REApplication.SessionContext

   

   Dim lAttributeID As Long

   'The below gets the attribute ID for the Special Requests attribute

   lAttributeID = oAttributeServer.GetAttributeTypeID("Special Requests", bbAttributeRecordType_PARTICIPANT)

   

   Dim oAttribute As IBBAttribute

   

   Dim oPart As CParticipant

   Dim lPartID As Long



   Dim oRec As CRecord

   Set oRec = New CRecord

   oRec.Init REApplication.SessionContext

   

   'Load constituent record based on system record ID

   oRec.Load 280

   

   For Each oPart In oRec.Participants

       If oPart.EventObject.Fields(SPECIAL_EVENT_fld_NAME) = "Volunteer Dinner" Then

           lPartID = oPart.Fields(Participants_fld_ID)

           Exit For

       End If

       oPart.CloseDown

   Next oPart

   

   Set oPart = New CParticipant

   oPart.Init REApplication.SessionContext

   

   oPart.Load lPartID

   

   Set oAttribute = oPart.Attributes.Add

   oAttribute.Fields(Attribute_fld_ATTRIBUTETYPES_ID) = lAttributeID

   oAttribute.Fields(Attribute_fld_VALUE) = "Non-Smoking"

   

   oPart.Save

   

   'Cleanup

   oRec.CloseDown

   Set oRec = Nothing

   

   oPart.CloseDown

   Set oPart = Nothing

   

   oService.CloseDown

   Set oService = Nothing

   

   Set oAttributeServer = Nothing

   Set oAttribute = 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.