Here is the code that I used to query 2006 and find all the values that were true in 2006, but not 2009.
PARAMETERS [Enter First Year to search] Value, [Enter Second Year to search] Value;
SELECT Owner.OwnerNo, Owner.Salutation, Owner.[Owner1 LastName], Owner.[Owner1 FirstName], Owner.StreetAddress, Owner.[PO Box], Owner.MailingAddress, Pet.PetName, Tag.Year, Owner.MovedDeceased, Pet.Deceased, Pet.Type
FROM (Owner INNER JOIN Pet ON Owner.OwnerNo = Pet.OwnerNo) INNER JOIN Tag ON Pet.PetNo = Tag.PetNo
WHERE (((Tag.Year)=[Enter First Year to search]) AND ((Pet.Type)="dog") AND ((Exists (SELECT petno from tag as Dupe where (Dupe.petno = pet.petno) and (dupe.[year] = [Enter Second Year to Search])))<>True));
Now I need to query all the years 2006-2009 and show all the pets that were registered in those years or not registered. The year registered is all contained in the Tag table, so I have to rename the tag table to search it multiple times.
An example would be
Petno 2006 2007 2008 2009
1 x x x x
2 x x
3 x x
Petno 1 was registered all years, petno 2 was not registered in 2008 & 2009, Petno 3 was not registered in 2006 & 2007