Combos relacionados con opción Todos.

Tengo dos cuadros combinados relacionados, el primer combo elige una subcategoría en el segundo. Ejemplo, el primero selecciona la marca del vehículo y en el segundo se muestra los modelos de coches de esa marca. Además he añadido al primer combo la opción Todos, y con esta opción en el segundo combo deben salir todos los vehículos, pero no se como aplicarlo al formulario. Se haría con un if (si combo1<>Todos) filtro por combo1, si combo1="Todos" no filtro. Pero no se como hacerlo en el formulario o en código vba.

1 respuesta

Respuesta
1
En la acción al hacer clic del 1er cuadro combinado tendrás que poner el origen de la fila del 2º, condicionando a que el valor del 1º sea Todos o <> todos.
Supongamos que el 2º cuadro se llama selVehiculo y el 1º selMarca, en la opción Al hacer clic del 1er cuadro:
Procedimiento de evento ---> Código:
Me. Refresh
If Form!selMarca.value="Todos" then
Form!selVehiculo.Rowsource="select........ " (la sql para "Todos")
else
Form!selVehiculo.Rowsource="select........ " (la sql para <>"Todos")
end if
Me cuentas.
Muchas gracias, el código funciona.
Pero al intentar montarlo me ha salido otro problema. En el combo1 (El de la marca del vehículo) usaba una lista de valores dados, pero lo que necesitaba finalmente es obtener esas marcas de la tabla vehículo. Al intentar filtrar las ocurrencias con el DISTINCT (para evitar repeticiones) no aparecen las marcas en el combo1 (pero el texto esta ahí, al elegirlo me cambia el combo2). Y si quito el distinct si se ven pero se repiten.
La Rowsource del combo1 seria SELECT DISTINCT Vehiculo.Marca FROM Vehiculo;
He tenido que quitar Vehículo.Cod del select para evitar repeticiones, igual es eso lo que produce el fallo (que no se ven las marcas en combo1), aunque el combo2 va cambiando según elijo fila en combo1. Gracias de nuevo.
Para evitar repeticiones usa el group by
Select NombreCampo from NombreTabla group by NombreCampo
Me cuentas.
Hola Angeles, gracias por tu ayuda.
El GROUP BY hace el mismo efecto que el DISTINCT, cuando ejecuto la consulta en los 2 casos el resultado aparece bien, pero en el combo1 no aparecen los datos, aparecen filas en blanco, los datos deben estar ahí (ya que al seleccionar una de las filas el combo2 se modifica bien), pero no se muestran las marcas en combo1, en combo2 si aparecen los vehículos filtrados.
Pasa al quitar el Vehículo. Código del SELECT, y tengo que quitarlo ya que si lo dejo en el DISTINCT me saca distintas ocurrencias de Vehículo. Código, Vehículo. Marca y con el GROUP BY si dejo el Vehículo. Código debo agrupar por los 2 campos y el resultado es el mismo, aparecen repeticiones, pero el combo1 muestra bien el resultado (con repeticiones).
Da la sensación de que sea algún problema del combo1 (campos visibles o algo así). Pero no se como solucionarlo.
Si quieres me mandas la BD (en access 2003), la echo un vistazo y hablamos sobre ella.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas