Private Sub RaisersEdgeRecord_BeforeOpen(oRecord As Object)
   Dim oConstituent As CRecord
   Set oConstituent = oRecord

   Dim oMembership As CMembership
   Dim oMembershipTransaction As CMembershipTransaction
   'Loop through each membership
   For Each oMembership In oConstituent.Memberships
       'Loop through each transaction
       For Each oMembershipTransaction In oMembership.Transactions
           If oMembershipTransaction.IsCurrentTransaction = True Then
               MsgBox oMembership.Fields(MEMBERSHIP_fld_CurrentCategory) & _
               " " & oMembershipTransaction.Fields(MEMBERSHIPTRANSACTION_fld_Expires_On)
               Exit For
           End If
       Next oMembershipTransaction
   Next oMembership

   Set oMembershipTransaction = Nothing

   Set oMembership = Nothing

   Set oConstituent = 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. Blackbaud Customer Support may help explain the functionality of a particular procedure, but we will not modify, or assist you with modifying, these examples to provide additional functionality.