Combos en cascada en un Formulario Continuo (primera parte)

Anuncio
Combos en cascada en un Formulario Continuo (primera parte)
Vamos a hacer un ejercicio para poner los combos en cascada (que el segundo combo
solo pueda tomar los valores que pertenecen al primero) en un formulario continuo
(tomado de la forma clásica de Marius)
Comencemos creando una base de datos de entrada de almacén, para ello necesitamos
tener como mínimo tres tablas, dos para los combos, la primera de Modelos y la otra de
Colores y una tabla extra para crear el formulario de Entrada de Almacén.
Hacemos la primera tabla que llamaremos tblModelos con solo dos campos el id y
Nombre como en la parte de arriba y la segunda que llamaremos tblColores de la
siguiente forma:
Podemos observar que modelo es numérico, está basado en la tabla anterior y lo
hacemos con el asistente para búsqueda:
Nos abre una ventana y seleccionamos: Deseo que campo de búsqueda busque los
valores en otra tabla o consulta, seleccionamos la tabla tblModelos después los dos
campos y aceptar hasta terminar y después nos dice que si guardamos, pues las
relaciones cambiaron y le damos aceptar, esto nos sirve para que la tabla me ponga un
combo con los valores de texto de la tabla modelo y además, sí creamos un formulario en
automático nos pone el control como combo. Desde luego que lo podemos hacer
poniendo los combos y estableciéndolos en origen del control, pero si Access lo hace por
nosotros ¡Qué mejor!
Rellenamos las dos tablas más o menos así:
Ahora vamos a hace la tabla tblAlmacen con 4 campos, observemos que los campos
Modelo y Color los hacemos igual con el asistente para búsqueda y seleccionamos sus
tablas respectivas y cuando nos pide guardar lo hacemos
Vamos a ver cómo han quedado las relaciones de nuestras tablas y deberíamos de tener
algo como esto:
Pero si observamos en la tblAlmacen Modelo está relacionado en la tblModelos con el Id,
puesto que agregamos la relación para crear el combo en la tabla tblAlmacen y en
realidad no la necesitamos, por tanto la borramos haciendo doble click sobre la línea y
dándole a suprimir o del, quedando así:
Una vez aquí, vamos a hacer nuestro formulario con el asistente para formulario,
escogemos la tblAlmacen y agregamos todos los campos y en seguida escogemos la
tabla tblColores y escogemos solo el campo Colores y tenemos algo como esto:
Le damos click en siguiente, de nuevo siguiente, tabular y siguiente hasta terminar cuando
nos dice que nombre le asignamos le decimos frmAlmacen y que lo abra para poderlo ver.
Comenzamos a agregar los primeros datos y nos damos cuenta que si seleccionamos
Sandero solo me debería dar los 3 primeros (Verde, Rojo Y Azul), así que ponemos el
formulario en vista diseño y nos vamos a propiedades del combo Modelo y en nombre se
lo cambiamos a cboModelo, ahora seleccionamos el combo Color y en origen de la fila le
damos a los 3 puntos del lado derecho, y nos abre el generador de consultas agregamos
el campo modelo y en criterios [cboModelo] y cerramos y aceptamos los cambios:
De vuelta en propiedades en origen de la fila del combo Color copiamos toda la línea en
un Word que se verá como esto:
SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo FROM tblColores WHERE
(((tblColores.Modelo)=[cboModelo]));
Y le agregamos lo que está en rojo:
Me.Color.RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo
FROM tblColores WHERE (((tblColores.Modelo)=[cboModelo]));"
En origen de la fila podemos borrar todo lo que tenía y en el evento Al entrar le damos a
los 3 puntitos y generar código lo agregamos quedando así:
Private Sub Color_Enter()
Me.Color.RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo
FROM tblColores WHERE (((tblColores.Modelo)=[cboModelo]));"
End Sub
Nos vamos al cboModelo y en el evento después de actualizar agregamos lo mismo
Private Sub Modelo_AfterUpdate()
Me.Color.RowSource = "SELECT tblColores.Id, tblColores.Colores, tblColores.Modelo
FROM tblColores WHERE (((tblColores.Modelo)=[cboModelo]));"
End Sub
Ahora solo nos falta poner el control Colores arriba de Color, pero podemos jugar para
que aprecien para que sirve Color. Y comenzar a cargar el formulario.
Descargar