Home

Example Application: Lambda Square (Apartments)

   

Introduction

Lambda Square is a (fictitious) company that owns an apartment building. The business consists of renting apartments to people who pay an amount every month. We are going to create a simple database that can be used to manage the business.

Practical LearningPractical Learning: Introducing the Application

  1. Start Microsoft Access
  2. Change the string in the File Name with Lambda Square
  3. Click Create

The Company's Employees

Employees are clerks who process all types of transactions. They create the records for apartments. They register new tenants. They process payments for tenants.

With as little information as possible, we will create a table for the employees.

Practical LearningPractical Learning: Creating Employees

  1. On the Ribbon, click Create
  2. In the Tables section, click Table Design
  3. Create the list of fields as follows:
     
    Field Name Data Type Caption Field Size
    EmployeeNumber Text Employee Number 20
    FirstName Text First Name 25
    LastName Text Last Name 25
    EmployeeName Text Employee Name 50
    Title Text   50
    EmailAddress Text Email Address 40
    Notes Memo    
  4. Right-click EmployeeName and click Primary Key
  5. Close the table
  6. When asked whether you want to save, click Yes
  7. Type Employees as the name if the table, click OK
  8. On the Ribbon, click Create and, in the Forms section, click Form Design
  9. Save the form as Employees
  10. Using the Properties window, set its Record Source as Employees
  11. Design the form approximately as follows:
     
    Lambda Square - Employees
  12. Save and close the form
  13. In the Navigation Pane, double-click the Employees form
  14. Create the following records:
     
    Empl # First Name Last Name Title Email Address
    27495 Justine Sandt Rent Manager jsandt2008@gmail.com
    28404 Raymond Wilkinson   rwilkinson@centralsquare.com
    30529 Mark Reason Maintenance Technician mreason@centralsquare.com
    38047 Marc Knights Rent Associate mknights@centralsquare.com
    40995 Jane Proctor Human Resources Manager jproctor@centralsquare.com
    62797 Leonard Goulet Owner - General Manager lgoulet@centralsquare.com
    72088 Thomas Wilkens Bookeeper twilkens@centralsquare.com
    92748 Nancy Longhorn Rent Associate nlonghorn@centralsquare.com
    92749 Horace Taylor Maintenance Technician htaylor@centralsquare.com
    94008 Martin Schroeder Rent Associate mschroeder@centralsquare.com
  15. Close the Employees form

The Tenants

A tenant is a customer who rents an apartment. A tenant is a person with some characteristics. For our database, we will consider:

  • The Tenant Code: This is the equivalent of an account of a customer in any business. This code must be unique for each tenant
  • The First Name
  • The Last Name
  • The Tenant Name: This is combination of the first and last name expressed as Last Name, First Name
  • The Marital Status: The possible options or values are single, married, divorced, etc. To give employees the ability to add or delete a marital status, this information will be stored in a different table and linked to this field
  • The Number of Children
  • The Phone Number
  • The Email Address

Practical LearningPractical Learning: Creating Tenants

  1. On the Ribbon, click Create
  2. In the Tables section, click Table Design
  3. Create the list of fields as follows:
     
    Field Name Data Type Field Size Caption
    MaritalStatus Text 25 Marital Status
    StatusDescription Memo 25 Description
  4. Right-click MaritalStatus and click Primary Key
  5. Close the table
  6. When asked whether you want to save, click Yes
  7. Type MaritalsStatus as the name if the table, click OK
  8. On the Ribbon, click Create and, in the Forms section, click Form Design
  9. Save the form as MaritalsStatus
  10. Using the Properties window, set its Record Source as MaritalsStatus
  11. Design the form approximately as follows:
     
    Lambda Square - Marital Status
  12. Save and close the form
  13. In the Navigation Pane, double-click MaritalsStatus form
  14. Create the following records:
     
    Marital Status Status Description
    Divorced At one time, the tenant was married but has legally divorced.
    Married The tenant is currently (legally) married, whether living with the spouse or not.
    Separated The tenant and the official spouse are not living together and are not expected to share the apartment
    Single The tenant has never been married.
    Unspecified  
    Widow At one time, the tenant was married but the spouse passed away.
  15. Close the MaritalsStatus form
  16. On the Ribbon, click Create
  17. In the Tables section, click Table Design
  18. Create the list of fields as follows:
     
    Field Name Data Type Field Size Caption
    TenantCode Text 20 Tenant Code
    FirstName Text 25 First Name
    LastName Text 25 Last Name
    TenantName Text 50 Tenant Name
    MaritalStatus      
    NumberOfChildren Number Byte Number of Children
    PhoneNumber Text 30 Phone Number
    EmailAddress Text 50 Email Address
    Notes Memo    
  19. Right-click MaritalStatus and click Primary Key
  20. Right-click Table1 and click Save
  21. Type Tenants as the name if the table, click OK
  22. Change the Data Type of MaritalStatus to Lookup Wizard...
  23. In the first page of the wizard, make sure the first radio button is selected and click Next
  24. In the second page of the wizard, click Table: MaritalStatus
  25. Click Next
  26. Double-click MaritalStatus
  27. Click Next
  28. Click Next
  29. Click Next
  30. Click Finish
  31. Click Yes to save the table
  32. Close the table
  33. On the Ribbon, click Create and, in the Forms section, click Form Design
  34. Save the form as Tenants
  35. Using the Properties window, set its Record Source as Tenants
  36. Design the form approximately as follows:
     
    Lambda Square - Tenants
  37. Save and close the form
  38. In the Navigation Pane, double-click the Tenants form
  39. Create the following records:
     
    Tenant Code First Name Last Name Marital Status Children Phone # Email Address
    928411 Ann Sanders Married 1 (240) 524 -2831 annsanders@emailcity.com
    279475 Mahty Shaoul Married 2 202-729-1574 mshaoulman@gmail.com
    920074 Frank Ulm Single 0 (301) 882-0704 fulm112244@yaho.com
    804085 Elise Provoski Separated 1 (443) 974-9631 eprevalence@yahoo.com
    920948 Grace Curryan Married 1 (240) 927-0993 gcarrier@gmail.com
    603848 Tracy Warrens Divorced 2 202-793-6924 twarrior12@hotmail.coom
    824922 Paul Yamo Married 3 (410-792-7045 pyamo@hr.umd.edu
    300409 Nancy Shermann Single 1 (703) 338-2973 nsherre@emailcity.com
    248506 Michael Tiernan Single 0 301-274-9285 resdev.globelan.net
    208081 Phillippe Anderson Single 0 202-729-1574 philanders@gmail.com

  40. Close the Tenants form

The Apartments

The apartments are the products that customers rent. Each apartment has basic characteristics such as:

  • The Number of Bedrooms: Some of our apartments have 1 bedroom. Some others have 2 or 3 bedrooms. The number of bedrooms will be represented as an integer
  • The Number of Bathrooms: Some apartments have 1 bathroom, which is the case for most one-bedroom apartments. A two-bedroom apartment can have one or two bathrooms. This depends on how the apartment was built
  • The Monthly Price: Obviously, tenants must pay rent every month. The price of an apartment varies on different factors such as the size of the apartment, the number of bedrooms, the number of bathrooms, etc. In the real world, the prices are set by categories. In our example, we will use different (types of) prices, just to make it fun
  • The Security Deposit: Our company requires that new tenants pay some type of deposit when they start occupying an apartment. The amount may depend on the number of bedrooms or the architecture of the apartment (in most cases, many apartments have the same layout). For our example, we will apply different amounts of security deposit
  • The Occupancy Status: We will use a field that specifies whether the apartment is available or not. Options may also include the fact that the apartment needs repair or some appliance(s) is(are) missing. Also, normally, when an apartment is ready to be rented, it gets the status of "Available". When the apartment is assigned to a tenant, its status should change to "Occupied" or "Rented" or something like that. We will not apply that functionality automatically because it requires (VBA) code. For our example, we will trust that an employee will change the status of an apartment when necessary. Because there can be different types of status, we will store this option in a different table

Practical LearningPractical Learning: Creating the Apartments

  1. On the Ribbon, click Create
  2. In the Tables section, click Table Design
  3. Create the list of fields as follows:
     
    Field Name Data Type Field Size Caption
    OccupancyStatus Text 25 Occupancy Status
    StatusDescription Memo 25 Description
  4. Right-click MaritalStatus and click Primary Key
  5. Close the table
  6. When asked whether you want to save, click Yes
  7. Type OccupanciesStatus as the name if the table, click OK
  8. On the Ribbon, click Create and, in the Forms section, click Form Design
  9. Save the form as OccupanciesStatus
  10. Using the Properties window, set its Record Source as OccupanciesStatus
  11. Design the form approximately as follows:
     
    Lambda Square - Occupancies Status
  12. Save and close the form
  13. In the Naviation Pane, double-click the OccupanciesStatus form
  14. Create the following records:
     
    Occupancy Status Status Description
    Available The apartment is ready for rent. It has passed internal and external inspections.
    Occupied The apartment is currently used by another tenant and it is not available
    Not Ready For any reason, the apartment cannot be occupied at this time. It could be due to need repair or a failed inspection.
    Needs Repair  
  15. Close the Occupancies form
  16. On the Ribbon, click Create
  17. In the Tables section, click Table Design
  18. Create the list of fields as follows:
     
    Field Name Data Type Field Size Format Caption
    UnitNumber Text 10   Unit #
    Bedrooms Number Byte    
    Bathrooms Number Single    
    MonthlyPrice Number Double Fixed Monthly Price
    SecurityDeposit Number Double Fixed Security Deposit
    OccupancyStatus       Occupancy Status
    Notes Memo      
  19. Right-click UnitNumber and click Primary Key
  20. Right-click Table1 and click Save
  21. Type Apartments as the name if the table, click OK
  22. Change the Data Type of OccupancyStatus to Lookup Wizard...
  23. In the first page of the wizard, make sure the first radio button is selected and click Next
  24. In the second page of the wizard, click Table: OccupanciesStatus
  25. Click Next
  26. Double-click OccupancyStatus
  27. Click Next
  28. Click Next
  29. Click Next
  30. Click Finish
  31. Click Yes to save the table
  32. Close the table
  33. When asked whether you want to save, click Yes
  34. Type Apartments as the name if the table, click OK
  35. On the Ribbon, click Create and, in the Forms section, click Form Design
  36. Save the form as Apartments
  37. Using the Properties window, set its Record Source as Apartments
  38. Design the form approximately as follows:
     
    Lambda Square - Apartments
  39. Save and close the form
  40. In the Navigation Pane, double-click the Apartments form
  41. Click the following records:
     
    Unit # Beds Baths Monthly Price Security Deposit Status
    101 2 2 1150 450 Available
    102 1 1 950 350 Needs Repair
    103 1 1 925 350 Available
    104 3 2 1350 500 Available
    105 2 1 1150 400 Available
    106 3 2 1350 500 Available
    107 3 2 1285 500 Not Ready
    108 1 1 885 300 Available
    109 2 2 1150 450 Available
    110 1 1 895 300 Available
    111 2 2 1145 450 Available
    112 2 1 1085 400 Available
    201 2 1 1185 400 Available
    202 1 1 895 300 Available
    203 1 1 925 350 Available
    204 3 2 1250 500 Available
    205 2 1 1100 400 Available
    206 3 2 1300 500 Available
    207 3 2 1350 500 Available
    208 1 1 920 350 Available
    209 2 2 1150 450 Available
    210 1 1 895 300 Available
    211 2 2 1175 450 Available
    212 2 1 1075 400 Available
    301 2 2 1175 450 Available
    302 1 1 950 350 Available
    303 1 1 925 350 Available
    304 3 2 1250 500 Available
    305 2 1 1100 400 Needs Repair
    306 3 2 1300 500 Available
    307 3 2 1350 500 Available
    308 1 1 920 350 Available
    309 2 2 1150 450 Available
    310 1 1 935 350 Available
    311 2 2 1175 450 Available
    312 2 1 1075 400 Available
  42. Close the form
 
   
 

The Registrations

To get possession of an apartment, a customer must come to the office, fill out a form, check what apartments are available, and wait. An employee would process the application, check the available apartments, check the customer's needs, and assign an apartment if everything is alright. This process can be referred to as registration.

To process a registration, we will need:

  • The Registration Number: This is a unique number that identifies each registration
  • The Registration Date: This is the date the record was created
  • The Employee Number: This represents the employee who created the record
  • The Tenant Code: This is the account number of the customer whose registration was processed
  • The Apartment Number: This information identifies the apartment that is allocated to the customer
  • The Rent Start Date: This information lets us know the first day the tenant starts occupying the apartment. The payments typically start at the end of the month of that date

Practical LearningPractical Learning: Registering the Tenants

  1. On the Ribbon, click Create
  2. In the Queries section, click Query Design
  3. Click Close on the Add Table dialog box
  4. Right-click the middle of the window and click SQL Code
  5. Type the following:
    CREATE TABLE Registrations
    (
        RegistrationID Counter(1001, 1) not null,
        Constraint PK_Registrations Primary Key(RegistrationID)
    );
  6. To execute the code, on the Ribbon, click the Run button Run
  7. In the Navigation Pane, right-click Registrations and click Design View
  8. Add the following fields:
     
    Field Name Data Type Field Size Format Caption
    RegistrationID AutoNumber     Registration ID
    RegistrationDate Date/Time   Long Date Registration Date
    EmployeeNumber Text 20   Employee Number
    TenantCode Text 20   Tenant Code
    UnitNumber Text 10   Unit Allocated
    RentStartDate Date/Time     Rent Start Date
    Notes Memo      
  9. Close the table
  10. When asked whether you want to save, click Yes
  11. On the Ribbon, click Create and, in the Forms section, click Form Design
  12. Save the form as Registrations
  13. Using the Properties window, set its Record Source as Registrations
  14. Design the form as follows (only the text boxes that are unbound are listed):
     
    Lambda Square - Registrations
    Control Name Control Source
    Text Box Text Box txtEmployeeName =IIf(IsNull([EmployeeNumber]),"",DLookUp("LastName","Employees","EmployeeNumber = '" & [EmployeeNumber] & "'") & ", " & DLookUp("FirstName","Employees","EmployeeNumber = '" & [EmployeeNumber] & "'"))
    Text Box Text Box txtTenantName =IIf(IsNull([TenantCode]),"",DLookUp("LastName","Tenants","TenantCode = '" & [TenantCode] & "'") & ", " & DLookUp("FirstName","Tenants","TenantCode = '" & [TenantCode] & "'"))
    Text Box Text Box txtUnitDescription =IIf(IsNull([UnitNumber]),"",DLookUp("Bedrooms","Apartments","UnitNumber = '" & [UnitNumber] & "'") & " beds, " & DLookUp("Bathrooms","Apartments","UnitNumber = '" & [UnitNumber] & "'") & " baths, rent = " & FormatCurrency(DLookUp("MonthlyPrice","Apartments","UnitNumber = '" & [UnitNumber] & "'")))
  15. Save and close the form
  16. In the Navigation Pane, double-click the Registrations form
  17. Create the following records:
     
    Registration Date Empl # Tenant Code Unit # Rent Start Date
    Tuesday, June 12, 2012 38047 928411 109 01-Jul-12
    Friday, June 15, 2012 92748 279475 104 01-Aug-12
    Friday, June 22, 2012 27495 920074 103 01-Jul-12
    Friday, June 22, 2012 94008 804085 305 01-Aug-12
    Monday, July 23, 2012 94008 920948 105 01-Sep-12
    Wednesday, July 25, 2012 27495 603848 106 01-Aug-12
    Wednesday, August 01, 2012 38047 824922 204 01-Oct-12
    Friday, August 10, 2012 27495 300409 108 01-Sep-12
    Wednesday, September 12, 2012 92749 248506 209 01-Nov-12
    Friday, October 05, 2012 38047 208081 202 01-Nov-12

  18. Close the Registrations form

The Payments

At the end of each month, every tenant must pay rent. To process a payment, we will need:

  • The Payment Number: This is a uniqque number that identifies a payment
  • The Payment Date: This is the date the payment is/was made
  • The Employee Number: This information identifies the employee who processed or received the payment
  • The Registration Number: In some applications, you may want to identify a payment by the aparment number or the tenant. Experience shows that a payment may be made by a person who is not living in the apartment (a parent, a friend, a spouse, an employer, an acquaintance, etc). A payment can also be made by two people, each paying part of the rent. There are many other disparate possibilities like that. Therefore, we will use the registration for which the payment is made. After all, a registration number holds the apartment number and the tenant who is occupying that apartment
  • The Amount Paid: As you may know already, there are various types of payments (such as security deposits, regular monthly payments, etc) and various amounts of payments (remember that apartments have different prices)

Practical LearningPractical Learning: Getting the Payments

  1. Access the Query Builder and change its code as follows:
    CREATE TABLE Payments
    (
        ReceiptNumber Counter(100001, 1) not null,
        Constraint PK_Payments Primary Key(ReceiptNumber)
    )
  2. To execute the code, on the Ribbon, click the Run button Run
  3. Close the Query Builder
  4. When asked whether you want to save, click No
  5. In the Navigation Pane, right-click Payments and click Design View
  6. Add the following fields:
     
    Field Name Data Type Field Size Format Caption
    ReceiptNumber AutoNumber     Receipt Number
    PaymentDate Date/Time   Long Date Payment Date
    EmployeeNumber Text 20   Processed By
    RegistrationID Number Long Integer    
    AmountPaid Number Double Fixed Amount
    Notes Memo      
  7. Close the table
  8. When asked whether you want to save, click Yes
  9. On the Ribbon, click Create and, in the Forms section, click Form Design
  10. Save the form as Payments
  11. Using the Properties window, set its Record Source as Payments
  12. Design the form as follows (only the text boxes that are unbound are listed):
     
    Lambda Square - Payments
    Control Name Control Source Visible
    Text Box Text Box txtTenantCode =IIf(IsNull([RegistrationID]), "", DLookUp("TenantCode", "Registrations", "RegistrationID = " & [RegistrationID])) No
    Text Box Text Box txtUnitNumber =IIf(IsNull([RegistrationID]), "", DLookUp("UnitNumber", "Registrations", "RegistrationID = " & [RegistrationID])) No
    Text Box Text Box txtEmployeeName =IIf(IsNull([EmployeeNumber]), "", DLookUp("LastName", "Employees", "EmployeeNumber = '" & [EmployeeNumber] & "'") & ", " & DLookUp("FirstName", "Employees", "EmployeeNumber = '" & [EmployeeNumber] & "'"))  
    Text Box Text Box txtRegistration =IIf(IsNull([RegistrationID]), "", "Tenant: " & DLookUp("LastName", "Tenants", "TenantCode = '" & [txtTenantCode] & "'") & ", " & DLookUp("FirstName", "Tenants", "TenantCode = '" & [txtTenantCode] & "'") & Chr(13) & Chr(10) & "Unit Occupied: " & DLookUp("UnitNumber", "Registrations", "RegistrationID = " & [RegistrationID]) & Chr(13) & Chr(10) & "Monthly Payment: " & FormatCurrency(DLookUp("MonthlyPrice", "Apartments", "UnitNumber = '" & [txtUnitNumber] & "'")))  
  13. Save and close the form
  14. In the Navigation Pane, double-click the Payments form
  15. Create the following records:
     
    Payment Date Empl # Reg ID Amount Notes
    Friday, June 22, 2012 38047 1001 450 This is the payment for the security deposit.
    Monday, June 25, 2012 92749 1002 500 Payment for security deposit
    Monday, July 02, 2012 27495 1003 350 Security Deposit
    Wednesday, July 25, 2012 38047 1001 1150  
    Thursday, July 26, 2012 94008 1003 925  
    Wednesday, August 01, 2012 27495 1006 500 Security Deposit
    Wednesday, August 08, 2012 27495 1008 300 Security Deposit
    Wednesday, August 08, 2012 27495 1007 500 Security Deposit
    Monday, August 13, 2012 27495 1004 400 Security Deposit
    Monday, August 27, 2012 27495 1004 1100  
    Tuesday, August 28, 2012 92749 1002 1350  
    Tuesday, August 28, 2012 38047 1001 1150  
    Thursday, August 30, 2012 94008 1003 925  
    Thursday, August 30, 2012 94008 1006 1350  
    Monday, September 17, 2012 27495 1009 450 Security Deposit
    Tuesday, September 18, 2012 92749 1005 400 Security Deposit
    Tuesday, September 25, 2012 92749 1004 1100  
    Tuesday, September 25, 2012 92749 1008 885  
    Tuesday, September 25, 2012 92749 1006 1350  
    Thursday, September 27, 2012 92749 1001 1150  
    Friday, September 28, 2012 27495 1002 1350  
    Friday, September 28, 2012 27495 1005 1150  
    Monday, October 01, 2012 38047 1003 925  
    Monday, October 08, 2012 27495 1010 300 Security Deposit
    Wednesday, October 24, 2012 92749 1004 1100  
    Wednesday, October 24, 2012 92749 1005 1150  
    Thursday, October 25, 2012 27495 1006 1350  
    Thursday, October 25, 2012 27495 1007 1250  
    Friday, October 26, 2012 92749 1002 1350  
    Monday, October 29, 2012 62797 1001 1150  
    Monday, October 29, 2012 62797 1008 885  
    Tuesday, October 30, 2012 27495 1003 925  
    Monday, November 26, 2012 92749 1008 885  
    Monday, November 26, 2012 38047 1002 1350  
    Tuesday, November 27, 2012 38047 1006 1350  
    Wednesday, November 28, 2012 62797 1001 1150  
    Wednesday, November 28, 2012 94008 1004 1100  
    Wednesday, November 28, 2012 92749 1005 1150  
    Wednesday, November 28, 2012 92749 1007 1250  
    Friday, November 30, 2012 94008 1009 1150  
    Friday, November 30, 2012 38047 1003 925  
    Friday, November 30, 2012 92748 1010 895  
    Sunday, December 02, 2012 92749 1002 1350  
    Tuesday, December 25, 2012 38047 1006 1350  
    Tuesday, December 25, 2012 38047 1007 1250  
    Wednesday, December 26, 2012 62797 1002 1350  
    Wednesday, December 26, 2012 94008 1001 1150  
    Thursday, December 27, 2012 92748 1009 1150  
    Friday, December 28, 2012 38047 1005 1150  
    Friday, December 28, 2012 94008 1010 895  
    Friday, December 28, 2012 92749 1004 1100  
    Friday, December 28, 2012 94008 1003 925  
    Monday, December 31, 2012 92749 1008 885  
  16. Close the Registrations form

Summary of Customer Payments

A summary of customer payments is a document that shows a list of payments the customer has made. It also shows information such as the date a payment was made.

Practical LearningPractical Learning: Creating the Summary

  1. On the Ribbon, click Create and, in the Forms section, click Form Design
  2. Save the form as sfPayments
  3. Using the Properties window, change the following characteristics:
    Record Source: Payments
    Default View: Continuous Forms
    Navigation Buttons: No
  4. Design the form as follows (only the text boxes that are unbound are listed):
     
    Lambda Square - Payments
    Control Name Caption Control Source
    Label Label   Receipt #  
    Label Label   Payment Date  
    Label Label   Processed By  
    Label Label   Amount  
    Text Box Text Box ReceiptNumber   ReceiptNumber
    Text Box Text Box PaymentDate   PaymentDate
    Text Box Text Box EmployeeNumber   EmployeeNumber
    Text Box Text Box txtEmployeeName   =IIf(IsNull([EmployeeNumber]),"",DLookUp("EmployeeName","Employees","EmployeeNumber = '" & [EmployeeNumber] & "'"))
    Text Box Text Box AmountPaid   AmountPaid
  5. Save and close the form
  6. On the Ribbon, click Create and, in the Forms section, click Form Design
  7. Save the form as TenantsAccountsSummaries
  8. Using the Properties window, set the record source to SELECT Tenants.TenantCode, Tenants.TenantName, IIf(CByte([NumberOfChildren])=1,[MaritalStatus] & ', one child',[MaritalStatus] & ', ' & [NumberOfChildren] & ' children') AS Details, Registrations.RegistrationID, Registrations.UnitNumber, Registrations.RentStartDate FROM Tenants INNER JOIN Registrations ON Tenants.TenantCode=Registrations.TenantCode;
  9. Design the form as follows (only the text boxes that are unbound are listed):
     
    Lambda Square - Tenant Payments Summary
    Control Name Caption Control Source Other Properties
    Text Box Text Box TenantCode Tenant Code: TenantCode  
    Text Box Text Box RentStartDate Tenant Since: RentStartDate  
    Text Box Text Box TenantName Tenant Name: TenantName  
    Text Box Text Box UnitNumber   =IIf(IsNull([EmployeeNumber]), "", DLookUp("EmployeeName", "Employees", "EmployeeNumber = '" & [EmployeeNumber] & "'"))  
    Text Box Text Box AmountPaid Aprt Occupied: AmountPaid  
    Text Box Text Box Details Details: Details  
    Subform / subreport Subform/subreport sfPayments Payments   Source Object: sfPayments
    Link Master Fields: RegistrationID
    Link Child Fields: RegistrationID
  10. Save and close the form
 
 
   
 

Home Copyright © 2012 FunctionX Home