Problema al realizar formulario de consulta con múltiples preguntas y posibles respuestas en blanco

Es la primera vez que escribo aquí pero lo cierto es que estoy un poco desesperado.

Llevo varios días trabajando en una base de datos de bromatología en la recopilo información de diversas bases de datos sobre estudios de microorganismos.

El objetivo de esta base de datos es que tener una consulta que funcione mediante un formulario. Este formulario tiene varias casillas a rellenar con la información que servirán para la consulta y además dichas casillas deben poder quedarse en blanco si no se conoce la información que le corresponde, mientras se pueda rellenar al menos una.

Hasta aquí todo bien. Tras informarme y no encontrar ningún método más práctico, decidí diseñar los criterios de búsqueda marcando todas las posibilidades de respuesta, indicando en los casos en que había alguna respuesta en blanco como que esa casilla era una respuesta nula.

Esto resultó fácil de hacer cuando estaba haciendo las pruebas con solo 3 preguntas, ya que hay pocas combinaciones de respuestas correctas y nulas.

El problema lo tengo ahora. Mi jefe me ha pedido que lo haga con 7 preguntas. Me he pasado un día escribiendo en un papel todas las combinaciones de respuestas validas y nulas. Y tras varias horas de pasarlas manualmente a los criterios de búsqueda de la consulta de access, cuando por fin ejecuto el formulario para probarlo, el sistema me salta con un mensaje diciendo que la consulta es demasiado compleja.

Estoy seguro de haber escrito bien todo el código. ¿Es acaso que el código es demasiado largo? ¿Hay alguna otra opción más sencilla para hacer que no haga caso a las casillas en blanco del formulario que no sea el método al que he tendió que recurrir?

1 Respuesta

Respuesta

échale un vistazo a este ejemplo del experto Neckkito, que seguro que te ayuda. http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/todos/93-ejemplos-explicados/ejemplos-de-formularios/194-crear-un-filtro-multiple

El ejemplo está muy bien explicado, pero si necesitas alguna ayudita a la hora de ponerlo en práctica, coméntalo y te oriento.

Gracias, se ve interesante. pero no es exactamente lo que yo estoy haciendo. En el ejemplo que me pone, él está usando un formulario directamente sobre una tabla habiendo una única respuesta valida para los todos datos que se introducen. Yo estoy usando el formulario para que al ejecutarlo me muestre directamente una tabla de consulta en la que puede haber una gran cantidad de resultados (me explico, mi tabla la organizo por microorganismos estudiados, y cada uno de ellos ocupa varias filas de la tabla ya que se les estudia mediante diferentes factores (temp, ph, aw...), siendo cada factor una fila diferente, repitiéndose pues el nombre de dicha bacteria en cada fila. No se si me explico. Y lo que es peor, por encima de estos microorg se organizan las aplicaciones en las que se han estudiado estos y la mayoría de ellos se han estudiado en más de una aplicación distinta bajo los mismos o diferentes factores, por lo cual la cantidad de respuestas validas puede variar mucho según la cantidad de datos que le meta yo al formulario. Cuanto más completo quede el formulario menor será la cantidad de datos obtenidos)

Necesito algo que me permita mostrar todos los resultados validos. Permitiéndome además dejar cuadros en blanco en el formulario pudiendo llegar a rellenar solo un cuadro de los 7 que tiene previstos.

Sin saber cómo tienes montada tu BD, sigo pensando que el ejemplo anterior te puede servir.

En tu caso trabajarías sobre una consulta en vez de sobre una tabla directamente, pero da lo mismo (para access una consulta es como una tabla)

Lo único que tendrías que hacer es hacer referencia en el código a tus 7 cuadros de texto ( o combinados o lo que uses para poner el filtro) para construir el filtro.

Luego, o le aplicas el filtro al propio formulario (si lo tienes, por ejemplo en el encabezado), o abres el formulario que te de el resultado filtrado por los valores elegidos, sustituyendo las dos ultimas lineas (Me.Filter = miFiltro y Me.FilterOn = True), por: DoCmd.OpenForm "NombreFormulario",,,miFiltro

Sin saber cómo es tu Bd, poco más te puedo decir, pues entiendo que debe ser bastante compleja.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas