Final Project – Complete Database Management System in MS Access
100%

MS Access Final Project

Welcome to the final project of the Microsoft Access tutorial. In this project, you will build a complete database application for an educational institute. You will use tables, relationships, forms, queries, reports, macros, validation rules, and backup techniques learned throughout the course.

Project: Educational Institute Management System
Software: Microsoft Access
Database File: InstituteManagement.accdb
Level: Beginner to Intermediate

1. Project Objectives

The application should allow an institute to:

  • Register and manage students.
  • Maintain course information.
  • Enroll students in courses.
  • Record fee payments.
  • Calculate outstanding course fees.
  • Search and filter student records.
  • Generate student and fee reports.
  • Navigate using a main menu.
  • Automate common actions using macros.
  • Create and test database backups.

2. Create the Database

  1. Open Microsoft Access.
  2. Select Blank Database.
  3. Enter InstituteManagement.accdb.
  4. Select a suitable folder.
  5. Click Create.
  6. Create the tables described below.

Use meaningful names for all tables, queries, forms, and reports.

3. Create the Students Table

Save the table as Students.

Field Name Data Type Purpose
StudentID AutoNumber Primary key
StudentName Short Text Student's full name
FatherName Short Text Father's name
Mobile Short Text Contact number
Email Short Text Email address
Address Long Text Residential address
AdmissionDate Date/Time Date of admission
Instructions
  1. Open Create → Table Design.
  2. Add the fields listed above.
  3. Set StudentID to AutoNumber.
  4. Set StudentID as the primary key.
  5. Save the table as Students.
Store mobile numbers as Short Text so that leading zeros and country codes can be preserved.

4. Create the Courses Table

Save the table as Courses.

Field Name Data Type Purpose
CourseID AutoNumber Primary key
CourseName Short Text Course name
Duration Short Text Course duration
CourseFee Currency Total course fee
Sample Courses
CourseName Duration CourseFee
ADCA 12 Months 10500
Tally Prime 3 Months 4000
Web Development 6 Months 10000

5. Create the Enrollment Table

The Enrollment table connects students with their selected courses. Save it as Enrollment.

Field Name Data Type Purpose
EnrollmentID AutoNumber Primary key
StudentID Number (Long Integer) Foreign key
CourseID Number (Long Integer) Foreign key
EnrollmentDate Date/Time Enrollment date

A separate enrollment table allows students to take multiple courses and each course to have multiple students.

6. Create the FeePayments Table

Save the table as FeePayments.

Field Name Data Type Purpose
PaymentID AutoNumber Primary key
EnrollmentID Number (Long Integer) Related enrollment
PaymentDate Date/Time Date of payment
AmountPaid Currency Amount received
PaymentMethod Short Text Cash, bank transfer, etc.
ReceiptNumber Short Text Payment reference

Each payment should be stored as a separate transaction. This supports installments and payment history.

7. Create Table Relationships

Students.StudentID
        |
        | One-to-Many
        v
Enrollment.StudentID

Courses.CourseID
        |
        | One-to-Many
        v
Enrollment.CourseID

Enrollment.EnrollmentID
        |
        | One-to-Many
        v
FeePayments.EnrollmentID
Steps
  1. Open Database Tools → Relationships.
  2. Add the four tables.
  3. Connect Students.StudentID to Enrollment.StudentID.
  4. Connect Courses.CourseID to Enrollment.CourseID.
  5. Connect Enrollment.EnrollmentID to FeePayments.EnrollmentID.
  6. Enable Enforce Referential Integrity where appropriate.
  7. Save the relationship layout.

8. Create Forms

Create the following forms using Form Wizard or Form Design:

  • frmStudents — add and edit student details.
  • frmCourses — maintain course information.
  • frmEnrollment — enroll students in courses.
  • frmFeePayments — record fee installments.
General Steps
  1. Select the appropriate table.
  2. Open the Create tab.
  3. Choose Form or Form Wizard.
  4. Select the required fields.
  5. Choose a suitable layout.
  6. Save the form with the suggested name.
  7. Open the form and test adding a record.
Use combo boxes for StudentID, CourseID, and EnrollmentID where appropriate, displaying names while storing the corresponding foreign-key values.

9. Query to Display Student Enrollment

Create a query that displays each student's name and the course in which they are enrolled.

SQL View
SELECT
    Students.StudentID,
    Students.StudentName,
    Courses.CourseName,
    Enrollment.EnrollmentDate
FROM
    (Students
    INNER JOIN Enrollment
        ON Students.StudentID = Enrollment.StudentID)
    INNER JOIN Courses
        ON Enrollment.CourseID = Courses.CourseID
ORDER BY
    Students.StudentName;
Steps
  1. Create a new query.
  2. Switch to SQL View.
  3. Enter the SQL statement.
  4. Click Run.
  5. Save the query as qryStudentEnrollment.

10. Query to Calculate Fee Dues

The fee dues query compares each enrollment's course fee with the total payments recorded for that enrollment.

First, save the following query as qryEnrollmentPayments:

SELECT
    Enrollment.EnrollmentID,
    Students.StudentName,
    Courses.CourseName,
    Courses.CourseFee,
    Nz(Sum(FeePayments.AmountPaid),0) AS TotalPaid
FROM
    ((Students
    INNER JOIN Enrollment
        ON Students.StudentID = Enrollment.StudentID)
    INNER JOIN Courses
        ON Enrollment.CourseID = Courses.CourseID)
    LEFT JOIN FeePayments
        ON Enrollment.EnrollmentID = FeePayments.EnrollmentID
GROUP BY
    Enrollment.EnrollmentID,
    Students.StudentName,
    Courses.CourseName,
    Courses.CourseFee;

Next, create another query using the saved query as its data source:

SELECT
    EnrollmentID,
    StudentName,
    CourseName,
    CourseFee,
    TotalPaid,
    CourseFee - TotalPaid AS FeeDue
FROM
    qryEnrollmentPayments;

Save the second query as qryFeeDues. It calculates the remaining amount for each enrollment.

This example assumes CourseFee is the agreed fee for each enrollment. If fees can change over time, store the agreed fee on the enrollment record so historical dues do not change when a course's current fee changes.

11. Create Reports

Create reports for reviewing and printing database information.

  • rptStudentList — list of registered students.
  • rptCourseList — list of available courses.
  • rptStudentEnrollment — students and their courses.
  • rptFeeDues — total fees, paid amounts, and outstanding dues.
  • rptPaymentHistory — individual fee transactions.
Steps
  1. Select a suitable table or query.
  2. Open the Create tab.
  3. Choose Report Wizard.
  4. Select the fields to display.
  5. Configure grouping and sorting.
  6. Select a layout and orientation.
  7. Save the report with a meaningful name.
  8. Review the output in Print Preview.

12. Create a Main Menu

The main menu allows users to open forms and reports from one central location.

INSTITUTE MANAGEMENT SYSTEM
-----------------------------------
[ Manage Students       ]
[ Manage Courses        ]
[ Student Enrollment    ]
[ Fee Payments          ]
[ Student Enrollment Report ]
[ Fee Dues Report       ]
[ Payment History       ]
[ Exit Application      ]
Steps
  1. Create a blank form in Design View.
  2. Save it as frmMainMenu.
  3. Add a heading and command buttons.
  4. Use the Button Wizard or macros to open forms and reports.
  5. Test every button in Form View.
  6. Optionally set frmMainMenu as the startup form.

13. Automate Actions with Macros

Macros can automate routine actions without requiring you to write VBA for every operation.

Example 1: Open the Student Form
Macro Action: OpenForm
Form Name: frmStudents
Example 2: Display a Message
Macro Action: MessageBox
Message: Welcome to Institute Management System
Title: Welcome
Example 3: Connect a Button to a Macro
  1. Open frmMainMenu in Design View.
  2. Select a command button.
  3. Open the Property Sheet.
  4. Select the Event tab.
  5. Configure the On Click event.
  6. Save and test the form.

14. Apply Validation Rules

Validation rules help prevent invalid values from being entered into the database.

Examples

Course Fee

Validation Rule: >=0
Validation Text: Course fee cannot be negative.

Amount Paid

Validation Rule: >0
Validation Text: Payment amount must be greater than zero.

Required Student Name

Set the StudentName field's Required property to Yes and consider setting Allow Zero Length to No.

Use field-level validation for individual values and form-level validation for rules that depend on multiple fields or business processes.

15. Database Backup

Create a backup after testing the completed application.

  1. Close the database and ensure no one is using it.
  2. Locate InstituteManagement.accdb.
  3. Copy the file to a separate backup folder or storage device.
  4. Give the backup a date-based name.
  5. Open a copy of the backup and verify important objects.
  6. Keep at least one backup separate from the original computer when practical.
InstituteManagement_Backup_2026-10-13.accdb
Do not treat a backup as complete until you have verified that it can be opened and restored successfully.

16. Final Project Checklist

Use this checklist to track your project work:

17. Final Viva Questions

  1. What is Microsoft Access?
  2. What is a primary key?
  3. What is a foreign key?
  4. Why are relationships important?
  5. What is database normalization?
  6. What is the difference between a table and a query?
  7. What is the purpose of a form?
  8. What is the purpose of a report?
  9. What is a macro?
  10. How can you calculate outstanding fees?
  11. Why should phone numbers be stored as text?
  12. Why is database backup important?

🧠 Final Project Quiz

1. Which Access object stores structured records?




2. Which field connects an enrollment to a student?




3. Which query helps calculate outstanding fees?