One approach to handling changes over time is to change the one-to-many
relationship to a many-to-many relationship.
Rather than have LeagueAndDivisionsID as a foreign key in tblTeams,
introduce an intersection table between them, with LeagueAndDivisionsID,
TeamID and EffectiveDt as the primary key of that table. Include ExpiryDt in
the table as well. Have ExpiryDt be Null for the current row (to make
queries easier). I typically have ExpiryDt equal to the EffectiveDt of the
next row.
To handle name changes, you can have a parent-child relationship. Store
whatever's relevant to the "team" in the parent table, and store the names
in the child entries associated with that parent.
You can, of course, take this to extremes. tblLeaguesAndDivisions can change
over time, so you may want to put EffectiveDt and ExpiryDt there as well.

Signature
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)
> Hello All,
>
[quoted text clipped - 31 lines]
> Thanks for your time
> Rob