Ricky Nguyen
asked on
Please help normalise table for Access 2007
Hi Experts,
Can you please help me create and normalise the following sample data.
Thanks
Ric
Sample-Data.jpg
Can you please help me create and normalise the following sample data.
Thanks
Ric
Sample-Data.jpg
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Slightly different, to make it easier to determine things like what % of class meetings a student actually attended:tblStudent------- ---------- ---------- ---------- ---------- ---------- StudentID (PK)StudentFNameStudentLNa metblClass es-------- ---------- ---------- ---------- ---------- ---------C lassID (PK)ClassNametblClassMeeti ngs------- ---------- ---------- ---------- ---------- ---------- ClassMeeti ngID (PK)ClassID (include unique index on ClassID, ClassDateTime)ClassDateTim etblAttend ance------ ---------- ---------- ---------- ---------- ---------- -Attendanc eID (PK)ClassMeetingID (include unique index on ClassMeetingID, StudentID)StudentID
ASKER
Hi valkyrie_nc,
How would i place those tables in a form? Would it be similar to the attached?
The problem with it is that i'll have to select every students (up to 30 students) every time there is a new date for the respective class.
Is there another way of setting it up?
Thanks
Ric
Current-Form.jpg
How would i place those tables in a form? Would it be similar to the attached?
The problem with it is that i'll have to select every students (up to 30 students) every time there is a new date for the respective class.
Is there another way of setting it up?
Thanks
Ric
Current-Form.jpg
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks fyed for taking a look at it. Any ideas how i can take it further?
Form data entry is a different issue from entry of existing data. The original question asked for how to normalize existing data from a spreadsheet. For new data entry, here's another idea, particularly if you generally have good attendance. You could have a button with a bit of code for adding a new class date that would add a corresponding entry for each student and defaulting to attended, and then displaying those records in the subform where you could then uncheck the attendance checkbox for each student that did not attend that day. This would probably work best with matthewspatrick's setup with four tables, one for the class dates.
ASKER
I was hoping to avoid coding like that as a solution. I just thought there would be a better way. I've created a subform within another subform but it just looks to unfriendly and too many things can go wrong.
Class Table:
ClassID | ClassName
1 | English
2 | Math
Student Table:
StudentID | StudentName
1 | Adam
2 | Billy
3 | Cook
Attendance Table:
AttendanceID | AttendanceDate | StudentID | ClassID | Present
1 | 2/08/2010 | 1 | 1 | N
2 | 2/08/2010 | 2 | 1 | Y
3 | 2/08/2010 | 3 | 1 | N
4 | 2/08/2010 | 1 | 2 | N
and so on...
This way you could store additional information about classes or students without compromising the table structure. You could use the first name as a student ID as you have in the sample data, but I don't recommend it, since you could have multiple students with the same first name, or even full name. Numerical IDs are generally more stable. So then in the database structure, you would link the StudentID and ClassID fields in the attendance table to their corresponding fields in the other two tables.
If you need a sample database, I can do that too, but a static picture of a spreadsheet is not exactly the easiest for data entry. Why not post the actual spreadsheet?