Lesson 49 of 50 – Student Management System Project
98%

Student Management System Project in MS Access

In this lesson, you will learn how to design a basic Student Management System using Microsoft Access. The project will organize student records, course information, fee details, enrollment records, forms, queries, and reports.

This practical project combines concepts covered in earlier lessons, including tables, primary keys, relationships, normalization, forms, queries, reports, and macros.

1. Project Objectives

The Student Management System will help an institute to:

  • Store student personal information.
  • Maintain course details and fees.
  • Record student enrollment in courses.
  • Record fee payments.
  • Search and filter student records.
  • Display student and course information through forms.
  • Generate student lists and fee reports.
  • Use a main menu to navigate the application.
Project name: Student Management System
Software: Microsoft Access
Suggested database file: StudentManagement.accdb

2. Create the Database

  1. Open Microsoft Access.
  2. Select Blank Database.
  3. Enter the name StudentManagement.accdb.
  4. Choose a suitable folder.
  5. Click Create.
  6. Prepare the tables described in the following sections.

Use meaningful object names so that tables, queries, forms, and reports are easy to identify.

3. Create the Students Table

Create a table named Students to store each student's personal information.

Field Name Data Type Purpose
StudentID AutoNumber Primary key
StudentName Short Text Student's full name
FatherName Short Text Father's name
Gender Short Text Gender, if collected
DateOfBirth Date/Time Date of birth
Mobile Short Text Contact number
Address Long Text Residential address
AdmissionDate Date/Time Date of admission
Steps
  1. Open the Create tab.
  2. Select Table Design.
  3. Add the fields listed above.
  4. Set StudentID to AutoNumber.
  5. Set StudentID as the primary key.
  6. Save the table as Students.
Store phone numbers as Short Text, not Number, because phone numbers are identifiers and may contain leading zeros or a country code.

4. Create the Courses Table

Create a table named Courses to maintain course information.

Field Name Data Type Purpose
CourseID AutoNumber Primary key
CourseName Short Text Name of the course
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

Set CourseID as the primary key and save the table as Courses.

5. Create the Enrollment Table

Students may enroll in courses, and each course may have multiple students. A separate Enrollment table records these associations.

Field Name Data Type Purpose
EnrollmentID AutoNumber Primary key
StudentID Number (Long Integer) Foreign key to Students
CourseID Number (Long Integer) Foreign key to Courses
EnrollmentDate Date/Time Date of enrollment
Why Use an Enrollment Table?
  • It allows a student to enroll in multiple courses.
  • It allows each course to have many students.
  • It avoids storing multiple course names in one student field.
  • It supports queries that combine student and course information.

If your institute permits only one course per student, you can use a simpler design. The separate Enrollment table is more flexible for a many-to-many relationship.

6. Create the Fee Payments Table

Create a table named FeePayments to store individual payment transactions. This supports multiple payments for the same enrollment.

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

Set PaymentID as the primary key. EnrollmentID should have the same underlying field size as the related EnrollmentID field in the Enrollment table.

7. Create Relationships

Relationships connect the tables and help maintain consistent data.

Required 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.
  2. Click Relationships.
  3. Add the Students, Courses, Enrollment, and FeePayments tables.
  4. Drag Students.StudentID to Enrollment.StudentID.
  5. Drag Courses.CourseID to Enrollment.CourseID.
  6. Drag Enrollment.EnrollmentID to FeePayments.EnrollmentID.
  7. Select Enforce Referential Integrity for each relationship when appropriate.
  8. Click Create and save the relationship layout.
Referential integrity helps prevent enrollment or payment records from referencing parent records that do not exist.

8. Create a Student Entry Form

A form provides a user-friendly interface for entering and editing student records.

Steps
  1. Select the Students table in the Navigation Pane.
  2. Open the Create tab.
  3. Click Form or Form Wizard.
  4. Select the fields to display.
  5. Choose a suitable layout.
  6. Save the form as frmStudents.
  7. Open the form and test entering a student record.
Recommended Forms
  • frmStudents — student details.
  • frmCourses — course details.
  • frmEnrollment — student course enrollment.
  • frmFeePayments — fee payment entry.

9. Create a Course Combo Box

A combo box allows users to select a course by name while Access stores the corresponding CourseID.

Steps
  1. Open frmEnrollment in Design View.
  2. Add a combo box control for CourseID.
  3. Choose to get values from another table or query.
  4. Select the Courses table.
  5. Choose CourseID and CourseName.
  6. Set CourseID as the bound column.
  7. Hide the CourseID column if desired and show CourseName.
  8. Set the control's Control Source to CourseID.
  9. Save and test the form.
Make sure the combo box is bound to the foreign-key field, not just an unbound text box displaying the course name.

10. Create a Query to Display Student and Course Details

A query can combine data from multiple related tables. The following example displays students and their courses.

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. Open the Create tab.
  2. Select Query Design and close the Show Table dialog if necessary.
  3. Switch to SQL View.
  4. Enter the SQL statement.
  5. Run the query.
  6. Save it as qryStudentCourses.

The query displays one row per enrollment. Students enrolled in multiple courses may appear in multiple rows.

11. Create a Fee Summary Query

This query calculates total payments for each enrollment.

SELECT
    Enrollment.EnrollmentID,
    Students.StudentName,
    Courses.CourseName,
    Sum(FeePayments.AmountPaid) 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;

Save the query as qryFeeSummary. Enrollments without payments can still appear with a blank TotalPaid value. You can use Nz(Sum(FeePayments.AmountPaid),0) in the SELECT expression to display zero instead.

The query calculates the amount received. To calculate outstanding dues, you must also define the fee amount applicable to each enrollment and subtract total payments from that amount.

12. Create a Student Report

Reports present database information in a structured format suitable for printing or exporting.

Steps
  1. Select the Students table or a suitable student query.
  2. Open the Create tab.
  3. Select Report Wizard.
  4. Choose fields such as StudentID, StudentName, Mobile, and AdmissionDate.
  5. Choose sorting options if required.
  6. Select a layout.
  7. Save the report as rptStudentList.
  8. Open Print Preview and check the output.
Suggested Reports
  • rptStudentList — all students.
  • rptCourseEnrollment — students by course.
  • rptFeeSummary — payments by enrollment.

13. Create a Main Menu Form

A main menu lets users navigate the application without opening tables and queries directly.

Suggested Menu Layout
STUDENT MANAGEMENT SYSTEM
---------------------------------
[ Manage Students  ]
[ Manage Courses   ]
[ Enroll Students  ]
[ Fee Payments     ]
[ Student Reports  ]
[ Fee Reports      ]
[ Exit Application ]
Steps
  1. Create a blank form in Design View.
  2. Save it as frmMainMenu.
  3. Add labels and command buttons.
  4. Use the Button Wizard or suitable macros to open the required forms and reports.
  5. Test each button.
  6. Set frmMainMenu as the startup form through File → Options → Current Database.

14. Sample Project Workflow

  1. Enter course details in the Courses table.
  2. Register a student using the Students form.
  3. Enroll the student in a course.
  4. Record each payment in the FeePayments form.
  5. Use the student-course query to review enrollment.
  6. Use the fee summary query to review received payments.
  7. Generate student and fee reports.
  8. Back up the database regularly.
Following this workflow helps maintain related student, course, enrollment, and payment information in separate but connected tables.

15. Project Improvements

You can extend this project with additional features:

  • Attendance management.
  • Student photo storage or linked image paths.
  • Course completion and certificate records.
  • Fee due calculations and payment reminders.
  • Search forms with filters.
  • Validation rules for required fields.
  • Macros for routine actions.
  • VBA for advanced automation.
  • Database backup and recovery procedures.

Add new tables and relationships carefully so that information remains consistent and unnecessary duplication is avoided.

16. Practical Project Assignment

  1. Create the StudentManagement database.
  2. Create Students, Courses, Enrollment, and FeePayments tables.
  3. Set primary keys and foreign keys.
  4. Create and test the table relationships.
  5. Enter at least five students and three courses.
  6. Create forms for students, courses, enrollment, and payments.
  7. Create the student-course query.
  8. Create the fee summary query.
  9. Create a student report and a fee report.
  10. Create a main menu form.
  11. Test the project with sample records.
  12. Create a backup of the completed database.

17. Revision Questions

  1. What is a Student Management System?
  2. Why should students and courses be stored in separate tables?
  3. What is the purpose of the Enrollment table?
  4. What is a primary key?
  5. What is a foreign key?
  6. Why is referential integrity important?
  7. What is the purpose of a combo box?
  8. How can a query display student and course details together?
  9. Why should fee payments be stored as separate transactions?
  10. What is the purpose of the main menu form?

🧠 Quick Quiz

1. Which table stores basic student details?




2. What is the purpose of the Enrollment table?




3. Which Access object is best suited for presenting formatted information for printing?