none
Form development for survey/questionnaire type application

    Question

  • Two questions here:

    I am developing a questionnaire type application and was wondering if there is some way to randomize the questions so that they do not appear in the same order each time the questionnaire is started.  They don't actually have to be random in presentation for example the first time they would appear 1-10 the second time 10-1 or whatever.  I know I could sledgehammer this but creating separate forms and then present the different version each time but thought there might be a more elegant way to do it?

    The second question is in the design of the form - some of the sections will have many questions and all must be answered (required) so unless I design very lllloooonnnngggg forms I am scratching my head as to how to design them - since all answers relate back to the person answering i.e one wide table I can't think of a way to split them up to make the forms more manageable.  

    Any ideas would be appreciated!

    Tuesday, March 06, 2012 3:43 PM

Answers

  • Personally, I'd use a separate Replies table with one record per question per respondent, and a continuous form to let the user enter the replies.

    But with a one-table design, you could use a tab control where each tab page represents a "section" of the questionnaire.


    Regards, Hans Vogelaar

    • Marked as answer by Bruce Song Wednesday, April 04, 2012 3:13 AM
    Tuesday, March 06, 2012 4:31 PM
  • Two comments:

    The number of controls you can create on a single form is limited to 754, and that includes controls and sections you add over the lifetime of the form.

    You can kill two birds with one stone by using a subform control that will display subforms of the question. This way each question will have its own form, and you can set the controlsource property of the subform control on the main form to display which ever question you want. A little vba needed, but you could have random sequence of questions, and the question do not need to be in a standard format.

    Hope some of this makes sense, it is still early in the morning for me :) .

    Imran

    • Marked as answer by Bruce Song Wednesday, April 04, 2012 3:13 AM
    Wednesday, March 07, 2012 3:52 PM
  • I've built a couple of similar applications and do not use the 'wide' approach.

    Each question is a record in a table and I use continuous forms or single form with buttons to move forward or back.

    This allows great flexibility when the client wants to change, add or remove questions. It can even be designed so that client can manage their own questions.

    I also add a Yes/No field to indicate if a question is required or not, another field to indicate any other validation (whole number, date, etc.) and a sequence field to indicate sort order.

    As for randomness, you can create a temp table with two fields, the ID of the question and Sequence. Set your form's recordsource to a query that joins the temp table with the question table and simply change the sequence in the temp table as desired, via code and use that sequence for sorting.

    This is pretty general, so I hope you can catch the idea.

    • Marked as answer by Bruce Song Wednesday, April 04, 2012 3:13 AM
    Wednesday, March 07, 2012 4:22 PM

All replies

  • Personally, I'd use a separate Replies table with one record per question per respondent, and a continuous form to let the user enter the replies.

    But with a one-table design, you could use a tab control where each tab page represents a "section" of the questionnaire.


    Regards, Hans Vogelaar

    • Marked as answer by Bruce Song Wednesday, April 04, 2012 3:13 AM
    Tuesday, March 06, 2012 4:31 PM
  • Hans - many thanks for the idea on using a Tab Control!   Didn't think of that!
    I will research using Tab Controls to move pages instead of objects - haven't done that before!

    Wednesday, March 07, 2012 1:57 PM
  • Two comments:

    The number of controls you can create on a single form is limited to 754, and that includes controls and sections you add over the lifetime of the form.

    You can kill two birds with one stone by using a subform control that will display subforms of the question. This way each question will have its own form, and you can set the controlsource property of the subform control on the main form to display which ever question you want. A little vba needed, but you could have random sequence of questions, and the question do not need to be in a standard format.

    Hope some of this makes sense, it is still early in the morning for me :) .

    Imran

    • Marked as answer by Bruce Song Wednesday, April 04, 2012 3:13 AM
    Wednesday, March 07, 2012 3:52 PM
  • I've built a couple of similar applications and do not use the 'wide' approach.

    Each question is a record in a table and I use continuous forms or single form with buttons to move forward or back.

    This allows great flexibility when the client wants to change, add or remove questions. It can even be designed so that client can manage their own questions.

    I also add a Yes/No field to indicate if a question is required or not, another field to indicate any other validation (whole number, date, etc.) and a sequence field to indicate sort order.

    As for randomness, you can create a temp table with two fields, the ID of the question and Sequence. Set your form's recordsource to a query that joins the temp table with the question table and simply change the sequence in the temp table as desired, via code and use that sequence for sorting.

    This is pretty general, so I hope you can catch the idea.

    • Marked as answer by Bruce Song Wednesday, April 04, 2012 3:13 AM
    Wednesday, March 07, 2012 4:22 PM