On top of what ajax already pointed out, any time you rely on free form text fields to provide you with an accurate link between one table and another you are going to be sorely disappointed. Your tables should have a primary key field that is NOT subject to change. For instance if you update the last name to correct a spelling error on your household table you have just orphaned all the skills on the household skill table.
What you should really have is something like
Code:
tblHousehold
H_ID H_Address H_City H_Zip ----> other household related fields (building type, etc.)
tblPeople
P_ID P_FirstName P_LastName ----> other person related fields (income, gender, etc.)
tblHouseHoldPeople
HP_ID H_ID P_ID ----> other people in the household fields (date joined, date left, etc..)
tblHouseholdPeople would be a junction table between people and households, this way if someone moves or marries into another household you're tracking you have the ability to move them between households.
Next you'd want your skills, and the skills should be related to the PEOPLE rather than to the household, that way when you move a person their skills 'leave' the household they were in and 'join' the household they move to
Code:
tblSkill
S_ID S_SkillName ---> other skill specific fields (how frequently certification needs to be refreshed etc)
tblPeopleSkill
PS_ID P_ID S_ID ---> other personal skill related fields (certification dates, etc if applicable)
you may also want to consider setting person relationships i.e. X is the Father of Y and so on.
all the ID fields in this example would be autonumbers. Autonumbers can't be changed unless you change the structure of your table which would ruin your data anyway and they are NOT subject to change over time which is what you are after.