10-06-11, 07:54 #1Registered User
- Join Date
- Sep 2011
Unanswered: Student attendance form design/implementation question
Sorry for the long thread name.
My knowledge of Access has grown since I started working on this project (a lot of it has been thanks to you guys) but I'm afraid I'm stuck yet again. This time, I just don't know how to do what I want: neither how I want it to look, nor how I'd actually implement it.
Essentially, what I want is a form that displays a list of students in a table, along with checkboxes for the user to keep class attendance for a specific course. I'm thinking the table would present the data on a per-week basis (I already have two combo boxes where the user can select the course, and then select the week he wants to see). There would be a column for every class session in the specified week.
As far as the database goes, these are the relevant tables:
1. Students (Student ID, Full Name, etc...)
2. Courses (ID, Start Date, End Date, Room ID, ...)
3. Course Events (ID, Course ID, Room ID, Start Time, Length, Day, Staff ID)
4. Student Attendance (ID, Student ID, Course ID, Attendance Date, Start Time, Length, Attended, Comments)
The reason for the Course Events table is that a class in this school can be taught across multiple sessions per day, and by different teachers. So, the Monday 8:00-9:30 session can be taught by Mr. Daniel in room 401, and the 10:00-11:30 can be taught by Mrs. Jennifer in room 402.
The reason for the Student Attendance table to include the Attendance Date, Time, and Length instead of linking it to the Course Events table, is because the Course Events might be changed, and we'd lose the information.
My problem is that I don't even know where to begin. I've read about continuous forms, but it seems like that's a path that many avoid. Dynamic forms seem to be a difficult path, as well. I don't mind working hard to get this to work, but I want to see what you guys think before I move forward. The easiest (albeit not the most user-friendly) solution I could think of was to include a date selector (after the user chooses which week he/she wants to work with) and just display the information by running a big query. The problem is that the user would only be able to edit attendance for one class session at a time (which isn't a bad thing, but I don't know if it's the best way).
I'm sorry for the super long post. I just really want to get your input before I proceed with any implementation. :/
Also, if you guys have any thoughts/suggestions as far as how the data is stored in the database (maybe I can do it a different, more efficient way), please let me know.
Thanks in advance!
Last edited by pedro-; 10-06-11 at 07:59.
10-06-11, 09:32 #2Jaded Developer
Provided Answers: 59
- Join Date
- Nov 2004
- out on a limb
first off don't leave spaces between column and or table names.. its going to bite you int he backside later on and force you to encapsualte them with  eg [my table].[my column name]
before you start writing your tables make certain you are not trying to use reserved words within the db or language microsoft access reserved words - Google Search
im guessing a student can only attend an event for the duration of the event (ie they can't just rollup stay there for a while and then feck off whenever they feel like it. if that assumptyion holds true then your entity for attendance is flaky
im also suspicious of the courses entity. most academic institutions have a course, which has multiple implementations over time. so Id expect another table to record a specific instance (running or) that course.
having separate columns for start time and day is wasteful, you only need one column to store that info. equally unless the course permits students to take electives (eg they may attend one instance of the course whihc say runs several times. I'd expect the institution to run a course in specific place at a specific time. you dont' need to store date time information of a students attendance unless you permit partial attendance.
a student is usually registered for a course (depending on the design constraints a student may be registered on multiple courses, a subject may be made up of mulitple courses and the same course may be part of multiple subjects.
from that intersection you then can register attendance for a specific student on a specific instance of that course.I'd rather be riding on the Tiger 800 or the Norton
10-08-11, 06:02 #3Registered User
- Join Date
- Sep 2011
Thanks for your input!
I hear ya on the column name spaces. The database was mostly done by the time I started working, so I thought I'd just be consistent with what was there already :/
Thank you for pointing out the fact that I probably don't need/care about the length of attendance. I put that info in there just to have the same info as in Course Events, but you're right - a student will likely stay for the whole class, and even if he doesn't, I don't care about that. I'll address that next week at work
As for the courses, we have two tables: Course Info and Courses. In Course Info we have all the details (name, course code, etc), while in Courses we store the actual course instance data.
Any thoughts on how I can present that data on a form, for a staff member to keep track of student attendance? (I want to know what would work well: a continuous form or whatever, and how I could present the data)
10-11-11, 00:45 #4Registered User
- Join Date
- Sep 2011
I apologize for bumping this thread -- it's not something I usually do in forums, but I just want some input on my design and the path I'm taking. I'm working on it today, so I'd like to get some feedback before I proceed too far down a possibly incorrect path