1) I can only guess that your relationship is not correctly set up to record this data.
2) You'll need to figure out 1 first, but you can use a global field as a match field in a relationship and you can also use it in a portal filter. But it looks like you need to work out the correct tables and relationships before you look into this.
I'd take a stab at the needed tables and relationships for you, but it depends on how your school operates. You may have just one class all day or you may have a different class each period and the same student may attend more than one class from you if you teach more than one subject. Those details make a big difference in how you need to structure your system to record attendance.
Thanks. I don't know what I have wrong relationally. My tables are linked by studentID, and there is only one entry in the table for that student, but all the classmates checkboxes are checked too. I just thought I was missing something simple.
For your second question, this is an elementary school, so the table only has a date field and the absent flag, other than the tableID and studentID fields. So that's what I'm interested in for now, but I would like to know how to add the added dimension of tracking different class attendance over the course of the day as well.
Perhaps the field is not defined in the correct table?
My tables are linked by studentID, this is an elementary school.
I am guessing that you teach in the United States. Please keep in mind that people post questions here from all around the world and educational systems vary from country to country.
My experience with elementary school would then suggest that you are taking roll once a day for a class of students that stay with you the entire day. Is that correct?
If so, then you may have this relationship:
Students::__pkStudentID = Attendance::__fkStudentID
But, without additional work, that will only allow you to take attendance once per student, not once per student per day.
You need a list of students with a field next to each name where you can record their attendance for a given day.
You can modify the above relationship to be:
Students::__pkStudentID = Attendance::__fkStudentID AND
Students::gDate = Attendance::Date
gDate can be a date field with global storage specified so that you can enter/select a date once for the entire class. "Allow creation of records via this relationship" should be specified for Attendance in this relationship.
You can then set up a list view layout based on students and place an attendance field from Attendance on this layout next to the student name.
You can then select a date in gDate to see/edit the attendance data for that date on this layout.
Note: this is the "basic beginner level" approach. Using filtered portals, you can actually set up columns of attendance fields from the attendance table so that you can see attendance for multiple days all at the same time--which can make clearing excused absences simpler.
This worked fine for a list view. Thanks. My original attempt was with a portal view. And yes, I didn't include the date join originally. However, after making that adjustment, my portal view still shows all students checked after checking only one box.
I am also intrigued by your description of beging able to see attendance for multiple days simultaneously. Can you explalin further please?
If all students are checked in after clicking one box, your layout is not designed correctly. This must be a field from Attendance, not a field defined in Students. And it cannot have global storage specified.