1. Is there any reason tblSurveyQuestions needs the foreign key to tblSurvey when tblTakenSurveys will connect these two? I have questions that appear in multiple surveys, but want to make sure this won't be a problem later.
In that case, you also have a many-to-many relationship between surveys and questions so the structure becomes:
tblSurveyTaker: (whoever takes the surveys)
SurveyTakerID (autonumber primary key)
FirstName
LastName
etc.
tblSurvey: (survey definition)
SurveyID (autonumber primary key)
SurveyName
etc.
tblQuestions: (individual questions)
QuestionID (autonumber primary key)
ResponseCodeSetID (foreign key to tblResponseCodeSets)
QuestionText
tblResponseCodeSets: (identifies a set of valid codes such as 1,2,..10 or a, b, c)
ResponseCodeSetID (autonumber primary key)
SetName
tblResponseCodes: (individual codes in a set - used to populate combo)
ResponseCodeID (autonumber primary key)
ResponseCode
ResponseMeaning
tblSurveyQuestions: (questions for survey)
SurveyQuestionID (autonumber primary key)
QuestionID (foreign key to tblQuestions, unique index fld1)
SurveyID (foreign key to tblSurvey, unique index fld2)
tblTakenSurveys:
SurveyTakerID (foreign key to tblSurveyTaker)
SurveyQuestionID (foreign key to tblSurveyQuestions)
ResponseCodeID (foreign key to tblResponseCodes)
tblTakenSurveys cannot contain both header and detail information. The first two fields occur only once per survey and there is very likely data associated with those two field. At a minimum, you probably want to keep the date the survey was taken. If the survey is administered by someone, you would want to log that person's ID, etc. That is why the four fields would end up in two tables.
Use a main form to capture the header information and a subform that lists all the questions for this particular survey. You can format the subform so that it sort of disappears into the main form if you want something that looks more like your paper form. However, if the subform contains more questions than will normally show, you will need to include scroll bars at a minimum.
Yes, much of the analysis will rely on crosstabs.