Creating database question loops
You might want to ask the same group of questions a number of times, for a different subject each time. One way to do this is to use a database question Loop. A database question loop is a container for a set of questions, whose category lists are generated by connecting to an external database, with options for determining how many times the questions are asked. The questions can be asked:
▪a fixed number of times
▪a number of times based on a list of entered responses
▪a variable number of times, where the number is taken from the response to a numeric question
▪once for each response in a single or multiple response question
▪a number of times based on a shared list of responses.
▪an unspecified number of times (known as an unbounded loop).
For example, suppose that you have a set of questions about vacations, such as, “How long the vacation lasted”, “The number of people in your group”, “Mode of travel”, and you want to ask the questions for a number of vacations that the respondent has taken. You might choose to do this in a number of ways; here are some examples:
▪Decide on a fixed number in advance and ask all respondents to answer the questions this many times. For example, “For each of the last three vacations you took, please say...”.
▪Begin by asking “How many vacations did you take last year?”, then ask the questions once for each vacation that the respondent took.
▪Begin by asking the respondent to select a range of destinations and then ask the question once for each destination selected.
You can create a loop and then add questions to it, or you can select existing questions and group them in a loop. Loops can contain any type of question.
Notes
▪The Routings section of the Properties pane allows you to select an interviewing mode for the questionnaire. This controls the supported question types. Paper - Scanning mode does not support True or False, Date/Time, Loop, or Block question types. So if you select Paper - Scanning for the interviewing mode, selection of these question types will be automatically disabled.
▪When a loop is not directly in a routing (for example, in an existing block or loop), it is not considered a routing item. In these cases it is not possible to set a loop iterator from within UNICOM Intelligence Author. You can achieve similar functionality by creating a script routing item that sets the loop iterator (from within UNICOM Intelligence Professional for example).
Creating a new database question loop
1 Click Insert > Question > Database Question > Loop, or press Alt+I, Q, D, D, L
The Data Link Properties dialog displays.
2 Specify the database provider and connection string information.
For more information on working with database questions that are derived from an Excel spreadsheet, see
Working with database questions from Excel spreadsheets.
After specifying the appropriate data link property information, the new multiple response database question displays in the Routings pane and in the Design pane.
3 Optionally, type a description in the field under Name.
4 Either enter the connection string parameters in the Connection string field, or click Edit to launch the Data Link Properties dialog.
When the questionnaire file is opened from an UNICOM Intelligence Interviewer - Server Admin, UNICOM Intelligence Author does not provide the Data Link Properties dialog (the dialog can not be used against the connected UNICOM Intelligence Interviewer - Server Admin). When working with files opened against an UNICOM Intelligence Interviewer - Server Admin, you must manually enter the connection string in the Connection string field. After entering the appropriate string, click Test to verify whether the connection string will work against the UNICOM Intelligence Interviewer - Server Admin.
5 Select the appropriate database table from the Table field menu. The list contains all tables in the selected database that correspond to the defined connection string.
6 Click
Preview to open the Database Table Preview dialog. You can preview the table structure before actually mapping the database columns. For more information, see
Database Table Preview dialog.
7 Use the Column mapping table to specify which database columns will provide the survey metadata. The list Available items to be mapped depends on whether the item being edited is a loop driver or a response list inside of a categorical question. Map the Available items to the Database columns by selecting the appropriate database columns from each item's column list.
String items can be mapped to any database table column.
Boolean items can only be mapped to database table columns that are also Boolean.
Numeric items can only be mapped to database table columns that are also Numeric.
Available items:
Item
|
Data Type
|
Database categorical questions
|
Loops
|
Name (required field)
|
String
|
Yes
|
Yes
|
Response (required field)
|
String
|
Yes
|
Yes
|
Key Code
|
String
|
Yes
|
No
|
File
|
String
|
Yes
|
Yes
|
Analysis value
|
String
|
Yes
|
No
|
Fixed
|
Boolean
|
Yes
|
Yes
|
Exclusive
|
Boolean
|
Yes
|
No
|
8 Click Filter to display the Filters dialog. You can write mrScript that can be used to further filter the response list returned from the database (on the Script tab), or compose SQL Where clauses in the WHERE section.
Viewing responses
After you have defined the connection string, selected a table, and mapped the columns, you can view the Responses table in the Responses tab. When working with database questions:
▪The data displayed in the table is read-only.
▪The Advanced Category Editor is not available.
▪You cannot assign custom properties to individual database items.
▪You cannot write translator notes for database items.
1 Click the Field Chooser button to select which fields will display in the Responses table.
Item
|
Database Categorical Questions
|
Loops
|
Name
|
Yes
|
N/A
|
Response
|
Yes
|
N/A
|
Key Code
|
Yes
|
N/A
|
File
|
Yes
|
N/A
|
Analysis value
|
Yes
|
N/A
|
Factor
|
Yes
|
N/A
|
Fixed
|
Yes
|
N/A
|
Exclusive
|
Yes
|
N/A
|
2 Click the Refresh button to view any changes that are made to the database items during the active UNICOM Intelligence Author session.
Iterator tab
For database question loops, the Iterator tab contains the same response table that displays for categorical database questions (on the Responses tab). Considering that the loop is driven by database data, the Iterator tab does not provide the same configuration options as a regular loop’s Iterator tab. The iteration options are dictated by the database list.
Specifying additional question details in the Properties pane
Specifying response options
1 The Response Order field indicates the order in which responses are displayed to respondents. Choose Default to present responses in the order they appear in the response list, Random to present responses in a random order, Rotated to present responses in rotation so that each response takes a turn at being first in the list, or Reversed to present responses in reverse order so that the last response in the list appears first. Alternatively, select Ascending or Descending to present the responses in alphabetical order.
2 Click the
SQL button to displays
SQL tab in the Filters dialog, enabling you to compose SQL
Where clauses in the provided
WHERE section. For more information, see
Filter dialog.
3 The Filter field enables you to filter the response list based on the responses to a previous categorical database question, or by non-database questions.
▪In the first box, choose one of All Responses, Chosen, Not Chosen, or Expert Expression. Selecting Expert Expression allows you to enter an expression filter in the At box.
Filtering database questions by another database question
1 In the At box, choose a database question whose answer controls the responses to be displayed for the current question. A dialog asks, “Would you like to replace the current connection string for this question with the connection string of {selected question name}?”
▪If you select Yes, the current connection string is replaced with the selected database question's connection string.
▪If you select No, the current connection string is retained and the intersection of the two response lists is used as the basis for the filter options.
Filter selection
|
Connection string replaced
|
Connection string not replaced
|
All Responses
|
Intersection of Q1 and Q2
|
Q1
|
Chosen
|
Intersection of Q1(chosen) and Q2
|
Q1 chosen
|
Not Chosen
|
Intersection of Q1(not chosen) and Q2
|
Q1 not chosen
|
Expert Expression
|
User specified
|
User specified
|
When Expert Expression is selected, the
At field changes to an ellipsis button: click it open the Filter dialog. You can write mrScript that can be used to further filter the response list returned from the database (on the
Script tab), or compose SQL
Where clauses in the
WHERE section. For more information, see
Filter dialog.
When prompted, confirm that the responses defined for the chosen question (the parent question) might overwrite the response list for the current question.
Filtering database questions by non-database questions
In the At box, choose a non-database categorical question. The current connection string is not replaced, and a list of returned responses from the connection string is filtered based on the selected categorical question.
Filter selection
|
Q1 is NOT a database question
|
All Responses
|
Intersection of Q1 and Q2
|
Chosen
|
Intersection of Q1(chosen) and Q2
|
Not Chosen
|
Intersection of Q1(not chosen) and Q2
|
Expert Expression
|
User specified
|
See also