That was a good solution. You can use DAO or ADO to program relationships. However, I prefer to use the old fashion embedded SQL solution.
This first procedure is used to create a Validation table:
Sub mcrCreateMemberType()
'MEMBER TABLE
strTable = "CREATE TABLE tlkpMemberType " & _
"(" & _
"MemberTypeID COUNTER PRIMARY KEY, " & _
"MemberType CHAR(6), " & _
"Description MEMO" & _
"

;"
'execute command
With DoCmd
.SetWarnings False
.RunSQL strTable
.SetWarnings True
End With
End Sub
My next procedure is used to create a new Base table where references are made including referential integrity imposition not described in your other response.
Sub mcrCreateMember()
'MEMBER TABLE
strTable = "CREATE TABLE tblMember " & _
"(" & _
"AOA VARCHAR(6), " & _
"MemberTypeID INTEGER, DuesTypeID INTEGER, MailTypeID INTEGER, " & _
"PrefixID INTEGER, memFirstName CHAR(20) NOT NULL, memMiddleName CHAR(20), " & _
"memLastName CHAR(20) NOT NULL, " & _
"SuffixID INTEGER, Gender CHAR(1), memAddress1 CHAR(50) NOT NULL, " & _
"memAddress2 CHAR(50), ZipID INTEGER, memPhone CHAR(7), " & _
"memFax CHAR(7), memCell CHAR(7), memEMAIL CHAR(30), memWebPage CHAR(30), CollegeID INTEGER, " & _
"YearGraduated CHAR(4), YearResidencyCompleted CHAR(4), ResidencyHospital CHAR(30), " & _
"InternshipHospital CHAR(30), DateOfBirth DATE, " & _
"SpouseFullName CHAR(50), JournalMail INTEGER, NJACOFP YESNO, Notes MEMO, PRIMARY KEY (AOA), " & _
"FOREIGN KEY (MemberTypeID) REFERENCES tlkpMemberType" & _
"

;"
'execute command
With DoCmd
.SetWarnings False
.RunSQL strTable
.SetWarnings True
End With
End Sub
This way, I keep my SQL skills sharp and still take care of my automated tables, queries, and relationships. ADO, DAO, and Embedded SQL are all great solutions.
Jamie 'DeVry'