It may look like a "row count" but you have to stop thinking of it that way.
http://www.utteraccess.com/wiki/Autonumbers
http://www.fmsinc.com/free/newtips/primarykey.asp
As for duplication of data, if you use tblStudentID (autonumber, PK) as the link between it and tblRegistered (my name) wherever you now have 111111 you would instead have 1 from tblStudents. So you repeat 1 everywhere other than tblStudents rather than 111111. While that may seem inconsequential, consider what happens if Mary Smith gets married and becomes Mary Jones. Your design better propagate the new name everywhere otherwise you've got trouble. Linking values shouldn't be done unless they are guaranteed not to change, but even then it's dubious. While I'm at it, be sure that the policy is that a student who drops out and comes back a few years later keeps the same number or you'll be faced with another problem.
If you want a report in the end I'm not seeing a need for a crosstab at all. Methinks you would group on student ID and list courses one of several ways as you see fit; e.g.
- all with a grade if completed, then those not (thus are registered but not complete as there's no grade)
- all with a grade and another report for those not completed
- first case, but sub report for registered
- additional groupings in one report (by student, by grade = yes, by course with no grade
Lastly, advise to NOT store year and quarter together in the same field, especially using special characters in data. That usually means no apostrophes in names either.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.