How to Save a Training Date for a Selected Course in Microsoft Access
Question details
The user needs to record a variable training date when a specific course is selected from a drop-down list for an individual.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Setting up a data entry form to log employee training dates by selecting a course title from a combo box.
- Observed behavior
- The user originally attempted to design a main table with separate fields named after each course title (flat-file design), which causes data redundancy and linking issues.
Ensure you have a complete list of course titles and personnel details ready before structuring your database tables.
Structure Tables with Relational Database Design
Organize your data into separate related tables to avoid flat spreadsheet models, which is essential for a functional Access database.
A common mistake when moving from Excel to Access is creating a main table with fields named after individual course titles. Instead, relational databases require separate tables linked by unique IDs. This makes the database easier to query, update, and maintain without structural changes every time a new course is added.
Create a 'People' table containing basic information like PersonID (Primary Key), First Name, Last Name, Date of Birth, and Job Title.
Create a 'Courses' table containing CourseID (Primary Key) and Course Title. This table acts as the source for your drop-down list.
Create a 'TrainingRecords' table to link people and courses. Include fields such as RecordID (Primary Key), PersonID (Foreign Key), CourseID (Foreign Key), TrainingDate, and Passed (Yes/No).
Navigate to Database Tools > Relationships. Drag PersonID from the People table and CourseID from the Courses table to the corresponding fields in the TrainingRecords table to enforce referential integrity.

Build a Main Form and Subform for Data Entry
Create a user interface that links your normalized tables, allowing users to easily select courses and input training dates.
Manage Training Records Easily with WPS Spreadsheet
While Microsoft Access is a robust database tool, designing relational tables and forms can be overly complex for simpler tasks. WPS Spreadsheet offers a highly compatible, free, and lightweight alternative to Microsoft Excel, making it incredibly easy to track employee training dates, create drop-down lists, and manage records without any database programming.
- 1. Open a Blank Spreadsheet: Launch WPS Spreadsheet and create a new workbook for your training records.
- 2. Set Up Data Validation: Go to the Data tab and select Data Validation to easily create drop-down lists for your course titles.
- 3. Track Dates Flexibly: Create adjacent columns for Names, Selected Courses, and Training Dates, utilizing intuitive filters to organize your data.

Frequently Asked Questions
Why shouldn't I create a separate field for every course title in Access?
Creating a separate field for each course (known as a flat-file design) violates relational database principles. It makes the database significantly harder to query, requires structural design changes whenever a new course is introduced, and clutters your table with empty fields for courses that employees haven't taken.
How do I link a selected course in a drop-down list to the main person table?
You achieve this by using a junction table (e.g., TrainingRecords) that stores both the PersonID and CourseID. A subform embedded in your main person form automatically links the PersonID, allowing you to select the CourseID from a combo box and enter the associated date.
Can I set a default training date for specific courses in Access?
Yes. If your business rules require a standard training date, you can set a default value in the table's field properties or directly on the form control. Alternatively, you can use a bit of VBA or macro logic to auto-fill the date control when a specific course is selected in the combo box.




