Is the Replication ID the right tool for this? If not how do I create
an ID field that is unique across the database?
There are a couple of possibilities. One would be to make your three tables
subclasses of an Entity class - have a table, Entities, with an autonumber
primary key, and make your Students, Classes, and Registrations tables all
child tables of this master table, all with one-to-one relationships. You'll
still want foreign keys in the Registrations table to the primary keys of
Students and Classes, as WELL as linking the primary key of Registrations to
the Entities PK.
Or, you could use a GUID or Random autonumber as the PK of each of the three
tables, and use Subforms to inherit them into the foreign key of the Notes
table. This would let you have the Notes table as the "child" of all three
tables, albeit not with referential integrity.
Or, you could use a Custom Counter rather than an autonumber as the primary
key of the three tables, assigning a different range to each - Students with
ID's 1 to 999999, Classes ID's 1000000 to 1999999, Registrations 2000000 to
2999999, again using the Subform to programmatically enforce RI.