Formulario con Filtro de Opciones

He aquí viendo como realizar lo siguiente:
Quiero hacer un formulario inicial, donde yo elijo trabajar SÓLO con una
parte de la BD (Cuadro combinado o Check Box) y el resto no me lo muestre.
... Es decir... Tengo por ejemplo varias tablas relacionadas y digamos
que quiero trabajar SÓLO con aquellos registros que se relacionan con una
Ciudad en particular y que me muestre en el formulario solo esos
registros...
En el Formulario inicial, como ya dije, se seleccionaría la ciudad con la
cual quiero trabajar y eso me dispararía al formulario principal mostrándome
solo los registros relacionados a dicha ciudad ...
7

7 respuestas

Respuesta
1
1.- La consulta origen que alimenta esa lista puede ser de varios campos, id y ciudad, luego en las propiedades de la lista en la anchura puedes elegir que campo será visible ( pejp 0;3 significaría que solo se ve el segundo con 3cm de anchura y el primero no) con la propiedad columna dependiente elegirías el campo a almacenar (independiente de cual se vea, es decir puedes ver una lista de ciudades unicamente pero lo que eliges es un ID o viceversa).
2.- Esto puede ser un poco más complicado ya que las listas no pueden vincularse mediante propiedades pero sí en origen, es decir, en la consulta originaria de la segunda lista puedes añadir el campo principal de la primera y poner como criterio que sea el valor de la lista1, de esa manera cuando elijas el valor de la primera te filtra los posibles valores a elegir en la segunda, una vez elegida en la segunda el formulario mostrara lo vinculado, ya que sólo se puede vincular a un objeto nada más. Ademas luego habría que hacer una macro para que la actualización de la segunda fuera constante ya que por defecto no es así.
3.-Los cuadros siempre tienen "memoria" mientras están visibles claro, cuando salgas de ellos comienzas de cero, creo que seria complicado recordarles el ultimo valor.
4.- Asociando una macro de cerrar el primnero al evento abrir el segundo
Hola, gracias por tu respuesta! Me ha funcionado bien!
Lo único que me han surgido 4 inquietudes al respecto.
1- El Formulario Principal ya estaba hecho (no lo quiero rehacer) posee ya un cuadro combinado con lista de "Ciudades" pero con otra finalidad, que es la de guardar en una tabla un registro determinado ... Más allá de eso, cuando aplico lo que me decís funciona muy bien, pero cuando hago referencia a su ID (es decir que yo elijo en el CboBox un numero) y lo que deseo es elegir el NOMBRE de la CIUDAD, he probado cambiando algunas cosas y no lo consigo!
2- Cómo debo proceder en el caso de que quisiera filtrar (en ese menu inicial), no solo por ciudad, sino también por, por ejemplo, SERVICIOS (las tablas están relacionadas) ... Entiéndase que habría 2 Cuadros combinados para elegir Información antes de Disparar al Frm Principal.
3-¿Cómo hago para que los cuadros combinados tengan "Memoria" de cual fue la última Ciudad elegida?
4-Cuarto y no molesto más :-) Como hago para que una vez que se disparó al Frm Principal, el Frm Inicial se cierre solo!
Un gran abrazo!
Saludos,
Drmx®.-
Es mucho más sencillo que todo eso, te basta con hacer una consulta de las tablas que quieras consultar, eligiendo los campos que quieras visualizar. Después de esa consulta creas (con el asistente por ejemplo) un formulario (del tipohoja de datos por ejemplo ya que será un subformulario).
A continuación e n un formulario nuevo vacío creas un check box o combobox para elegir el dato en particular (una ciudad), en ese formulario incrustas el subformulario anterior (con el asistente por ejemplo), ya únicamente te queda ligar el subformulario con el combobox, para ello desde las propiedades del subformulario en la propiedad vincular campos principales pondrás el NOMBRE del combobox (no el campo al que representa, error frecuente) y en vincular campos secundarios el nombre del campo a vincular (en este caso ciudad).
Cuando elijas una ciudad del combo el formulario solo mostrara los registros de esa ciudad.
Respuesta
1
Creo que lo he entendido. Para este caso yo utilizaría una variable global declarada en un módulo. Es decir, crearía un Módulo y, en el código, pondríamos:
Global strProvincia as String
Esta variable (strProvincia) la utilizaríamos para poder "filtrar" los registros de la BD. Para ello, tendríamos que utilizar formularios basados en consultas, las cuales tendrían el criterio de que la Provincia sería igual a la variable strProvincia.
Respuesta
1
En primer lugar lo ideal es que tengas todas las ciudad en un combobox pero relcionado a un tabla que tenga todas las ciudades y cada ciudad tenga un código, un vez hecho esto asignas al combobox el evento on_change o al cambiar, y asignas el valor (código) de la ciudad a una variable global, entonces dentro del formulario que abres después creas la consulta con respento al valor de la variable global.
Hola, gracias por responder!
Más o menos entiendo, ¿pero podrías ser un poco más detallado sin obviar nada? Perdón, pero como decía en mi exposición primera, soy UN NOVATO que apenas gatea cual bebe fuera con estos temas.
Un gran abrazo y disculpas.
Agrégame en tu msn para responderte más rápidamente
[email protected]
Respuesta
1
Debes de crear un form que provenga de una consulta, cuyo parámetro de criterio sea ciudad.
En el form principal, al marcar la ciudad debes de colocar un botón que diga OK y en el llamas al form creado y a la consulta le pasas el parámetro de la ciudad que este marcada en ese momento.
Respuesta
1
Sí, eso lo logras con el cuadro combinado. Si eres novato en Access te voy a recomendar que utilices las macros que vienen "incorporadas". Para ésto puedes crear una macro que una vez hayas seleccionado del cuadro combinado lo que te interesa trabajar te abre el formulario con la condición que el valor en el cuadro combinado sea igual al campo en LA TABLA que está vinculada al formulario con eso te va a permitir abrir solamente una parte de los registros.
Hola, gracias por responder.
Mira, yo necesitaría que sea con un cuadro de texto y un botón de comando y que estos me busquen un valor (numérico o texto o lo que sea que ingrese en el TextBox) dentro del mismo formulario principal que ya esta armado ...
¿Un poco exigente el muchacho no?
Gracias por tu paciencia!
Saludos
Pero ahí no te entiendo entonces si es con filtro de opciones. Si quieres hacer una búsqueda específica debes hacer lo mismo que te había comentado, que se active el comando, la función o la macro en el momento que hagas clic en el botón de comando y que abra el formulario según lo que encuentre en el cuadro de texto.
Respuesta
1
Deja abierto el formulario principal, y en los siguientes hazque las consultas origen del control tengan siempre CIUDAD = forms![nombreformprincipao]![nombrecontrolcuadrocombinadociudad]
Respuesta
-1
En la siguiente liga:
http://www.mvp-access.com/
Tienes varias aplicaciones que puedes usar de muestra y trabajar con ellas de acuerdo a lo que necesitas.
No lo tomes a mal, pero... creo que tu respuesta no es más que una delegación de funciones ... A preguntas puntuales, respuestas puntuales ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas