i presume each tag is only used by one cow at any one time.
how does your previous 100,000 records distinguish between these tags/cows? that is, with about 440 tags, how had you PREVIOUSLY known which tag meant which cow?
also, to take on the analogy you yourself provided with employees.
employeeID is the easiest way to refer to a single employee between related forms. why? because say you have seven employees byt he name of "Andrew Smith".
you will not be able to pick the correct Andrew Smith if you ONLY have the name to go by. so what else do you go by? why, address or mobile number would be a good indicator that Andrew Smith 1 (who lives in Redfern) is different to Andrew Smith 2 (who lives in Newtown), but the Andrew Smith that you are actually trying to call is Andrew Smith 3 (who lives in Newcastle).
so, if you apply an EmployeeID to these employees, all of a sudden you can say "i want to speak to EmployeeID=3" and know you have the right person INSTEAD OF saying "i want to speak to the employee whose name is 'andrew smith' and who lives in newcastle". it's just easier and you're only referring to ONE piece of data, rather than trying to pull together many in one go.
so, primary key should be something like CowID in your tblCows table and all the information that is about JUST the cow.
(i.e., if you were making an employee table, you might have DOB, gender, etc but you wouldn't have "shirt worn today" becuase that will be constantly changing and has nothing to do with the person themselves - anyone could wear that shirt. so you'd have a separate table for shirts called tblShirts and each shirt would have an autonumber primary key called ShirtID.)
you should then have a separate table, tblTags, with another primary key called TagID and any info about that tag which is JUST about that tag. e.g., tag colour, tag number, tag shape (anything that CAN'T change about that tag).
that's Normalisation 101. have a separate table for separate entities. e.g., separate table for companies, separate table for employees, separate table for products, separate table for... you get the idea. so, that is to say, a company MAY supply a product, but they should NOT go into ONE table- they should be separated into two. on which stores JUST the products' details, and another stores JUST the company's details.
now, you need to somehow join the tag to the cow. i presume one cow will only have one tag their whole life on that farm?
if so, you should add a field in your tblCow table to accomodate this one tag. it will be of datatype "number" (not autonumber) and should be called TagID.
in the relationship window, you can then create a link between the tblTags table and the tblCows table by the TagID (just click and drag the TagID from one table to the other, and make sure to check for 'referential integrity' - which basically means that a cow cannot have a non-existent tag).
...let's stop there and see if this sinks in and where you might want help from here.
you have to understand that access is not excel, and that a 'spreadsheet' is not what you are making in access.
access will do a lot of the work for you IF you set it up correctly in the first place.