Thought I'd share this simple idea with you guys. I had a request in to create a form with about 15 questions and gather responses. Rather than create a bespoke list and form I looked into creating a solution that would allow anyone to create a questionnaire and send it out to anyone in the company.
My solution uses two lists. One to Create the Questionnaire Group and one to hold the tasks for each user generated by a workflow. The task list can easily be connected to excel allowing simple pivots to show the status of each questionnaire. IE who has yet to fill in the form!
Questionnaire Form example...
It allows you to configure various items. The email text that goes out with the task, who it's from and so on. A form can have up to 25 questions, each with it's own set of answers in the drop down. Finally who you want to target. Using a list of users, I use SQL within my workflow to lookup logons based on your choices of Office. department etc.
Once the questionnaire group has been filled in, the user can generate the tasks. The workflow looks up the users from your choice and for each logon generates a task.
The Questiongrouplookup is part of the magic. The Question task list has a lookup field to the Questionnaire group. So when creating the task and adding the ID of the Questionnaire group, you have a lot of the fields useful to you when creating task views.
One thing I wanted to do was have it so that if I've generated 100 question tasks, and there is a spelling mistake in a question or answer, rather than having to refresh or re create the tasks, I wanted the form on opening to lookup all the current detail from the Question Group.
Question Form Example...
You can see from the above example the questions and answer options are being pulled from the Question Group.
I use the lookup function to pull in the questions.
The source for the answers is gathered by using the lookup field to the questionnaire group.
Question Group Lookup column.
I've included the List templates to get you started...