¿Como puedo en un formulario de ...

Como puedo realizar por ejemplo un cuestionario en el que se vaya creando la pregunta según la respuesta de la pregunta anterior por ejemplo:
¿Actualmente trabaja?
RESPUESTAS POSIBLES: SI / NO
Si indica que si quiero que aparezca una pregunta así: ¿Por cuenta ajena o por cuenta propia?
Si indica que no quiero que aparezca una pregunta así: ¿Entonces a que se dedica?
Si no me entiendes pide que te formule mejor la pregunta que sin ningún problema lo hago.

1 respuesta

Respuesta
Ante este caso te cuento como lo haría yo. Tendrás una colección de preguntas en cascada, y la respuesta a una de ellas desencadena las siguientes. En principio esta colección será cerrada, una colección de preguntas jerarquizada.
Según el ejemplo que pones:
1.- Actualmente trabaja. SI/NO ...
1.1.- Cuenta propia/ajena
1.0.- a que se dedica
Lo primero que haría es una tabla con el texto de las preguntas, un código para cada una de ellas (no un código numérico), el nombre de la tabla, y el campo donde quiero guardar cada respuesta. Y un subformulario para cada pregunta.
A partir de aquí diseñaría un formulario flexible, de manera que pudiese presentar cualquier pregunta, con un subformulario
Una vez que muestro la primera, por código:
- Cambiaría el texto de la pregunta siguiente
- cargaría el subformulario de la pregunta en el subform
y así sucesivamente con la jerarquía de las preguntas con SELECT CASE  o IF
Tiene más complicación el análisis de los datos y la estructuras de las tablas para las respuestas que necesitas que los formularios, por eso me parece que la clave la tienes en acertar con esa tabla que te digo que hace de índice de las preguntas
Buenas ante todo agradecerte tu pronta respuesta y tu interés por ayudarme en principio entiendo más o menos lo que me quieres decir pero ni entiendo como jerarquizar las preguntas ni se como puedo utilizar el select case o if ni se como hacer el análisis ni nada de nada si serias tan amable de hacerme tu por favor una bbdd con una breve encuesta con las preguntas que tu quieras solo un ejemplo claro que vayan alternándose las preguntas según conteste el encuestado y por supuesto que se graben en una tabla el id el nombre del encuestado y todas su respuestas para luego poder imprimirlas e pensado en poner a cada pregunta una id para que luego realize yo una consulta pero el tema es el siguiente como tendré un formulario para cada pregunta y una tabla para cada pregunta como lo he medio hecho jejejeje pues resulta que para recoger todas las preguntas he hecho una consulta parametrizada que me indica el numero de id que quiero recoger las respuestas entonces si pongo el uno me recoge todos los id 1 y me aparece la encuesta bien realizada pero por ejemplo con la encuesta 2 seria un problema puesto que en la primera encuesta algunas no ha contestado el encuestado y por lo tanto no tiene id 2 si no id 1 entonces me las mezcla por favor enviame un ejemplo de como lo harías tu a mi mail [email protected] muchísimas gracias de antemano a y en el ejemplo no te esfuerces unicamente es para ver como se utiliza en cada caso el case el if y como se diseña el subformulario en el formulario en este caso Nombre que es el principal puesto que ahí te aparece el id de encuesta y el nombre del encuestado y claro si hago subformularios me van aparecer los campos id_pregunta y realmente seria un coñazo que para cada respuesta tenga que poner la id. Gracias.
Como te digo lo primero es que analices las preguntas, y según esto te hagas las tablas, por temas, por grupos o como sea, quien conoce el diseño de la encuesta eres tú.
Una vez que la tengas estudiada y con las tablas hechas, lo de la jerarquí te lo digo en el sentido que indicas, que según la contestación de una pregunta la siguiente es una u otra. También has de tener en cuenta el tipo de dato, no es lo mismo un boolenano (si/no) que un texto, según tu ejemplo:
¿Actualmente trabaja? : Si/No --> 1/0 --> valor boolenao
¿Por cuenta poropia o ajena? --> Puedes almancenar simplemente el texto (no te lo aconsejo), un valor codificado con una tabla de apoyo y la relación con esta tabla, o dividirlo en dos campo Cuenta propia booleano y cuenta ajena booleano (tampoco te lo aconsejo, a no ser que consideres el caso de una persona que ejerza actividad profesional además de estar empleado)
¿Entonces a que se dedica) --> texto, si lo dejas como un texto abierto te será muy difícil explotar luego la información intoducida por la variablidad, puedes poner una tabla con los valores de dominio que consideres más habituales.
Esto es sólo para esas preguntas, habrás de analizar todas las que tengas
Lo siguiente es que te hagas un subformulario para cada pregunta, así podrás cargarlas en otro formulario según quieras, o formularios genéricos para cargar cada pregunta según el tipo de dato (yo lo haría así)
Para ello con la tabla índice de preguntas donde tienes el id de la pregunta, el texto, la tabla y el campo
Con esto: según el id de la pregunta, cargas el texto en un caption genérico, construyes el SQL contra la tabla y el campo de la pregunta, se lo asignas al subformulario y lo cargas.
Habrás de leer en la tabla adecuada el valor de la respuesta de la primera pregunta para una encuesta concreta para cargar hacer lo que te digo en el párrafo anterior.
En cuanto hacerte yo una base de dato, no: el análisis sólo se puede hacer conociendo en detalle la encuesta y lo que se pretende con ella, y eso tienes que hacerlo tú; que yo te haga algún ejemplo de SELECT CASE, o IF, y que trates de adaptarlo a lo que necesites te va a liar más, te recomiendo que busques algún manual por la red de programación en VBA, o VB y después de verlo un poco lo apliques. Yo te puedo ayudar, pero hacer tienes que hacerlo tú.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas