Is there a checkbox option for collecting data in Access?

K

Kristen

I want to collect data from my clients through a survey in Microsoft Access.
I am asking a series of questions and would like my clients to reply by
clicking a check box that says either it's Important, Somewhat Important, Not
Important. I know you can use blank fields to collect data, but is there any
way to use check boxes? I believe I will be more likely to get replies if all
they have to do is click a box, instead of actually typing a response. Thank
You in advance for the help.
 
K

Ken Sheridan

Firstly don't make the mistake of including three Boolean (Yes/No) columns in
the table, one for each alternative answer to a question. It is often done,
but it’s a very bad design.

You have two alternative approaches really, one is to use an unbound form
with check boxes and use code in the form's module to update the values in a
column in the table. You'll also have to write code to check the right boxes
on the basis of existing data in the table when navigating to an existing
record, and to ensure that only one of each alternative can be checked at one
time. With this approach you can design a form to mirror a paper form with
all questions and possible answers set out together.

An alternative is to use a bound form with an option group, with check boxes
as its controls, bound to the AnswerID column. This avoids writing code to
write the values to the table as an option group's value is a number. In
addition to this the form would include a control bound to the QuestionID
column. This control can be a combo box which shows the text of the
question, but whose value is the underlying QuestionID. This form would be
based on the table which stores the respondent's answers to each question,
one row for each question and the answer given. Assuming each question can
only be answered once the QuestionID would be the primary key.

With the second approach, rather than showing all questions and answers
together, in simulation of a paper form, you'd show each question and the
option group bound to the AnswerID column individually. You can write code
so the form steps through the questions in order, moving to the next question
after the respondent answers one, i.e. moving to a new record with the
question in place in the AfterInsert event procedure of the previous record
entered. This does assume, however, that each question has the same set of
answers, so it is quite restrictive and, while it is easier to set up than
the first approach using an unbound form the appearance from the respondent's
point of view is not ideal. One drawback is that the respondent cannot se
the full extent of the questionnaire at the outset, so doesn't know just how
big a task they are embarking on, so its important to give the respondent
information on this, e.g. "Question 5 of 25", as they proceed . Arising from
this it requires some code to pick up where they left off if they close the
form and reopen it. While it can be done, I'd advise the use of an unbound
form as this, albeit requiring more work to develop, does give you complete
flexibility in how you present the questionnaire to the respondent, and
projects a more professional image of your organization.

As regards the underlying model, in addition to the table which stores the
respondent's answers to each question, you'd need a separate Answers table
with columns AnswerID and Answer, the latter containing the text values. So
it might read:

1 Important
2 Somewhat Important
3 Not Important

You'd then have a Questions table with QuestionID and Question columns.

The Questions table is related to the Answers table in a many-to-many
relationship, so you'd then need a QuestionAnswers table with columns
QuestionID and AnswerID to model this relationship, each row representing a
question and one of the possible answers to it.

Ken Sheridan
Stafford, England
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top