Seleccionar de entre un rango

Tengo una tabla que se llama LISTA DE ACTIVIDADES con dos campos: ACTIVIDAD y SUBACTIVIDAD:

ACTIVIDAD                                         SUBACTIVIDAD

Agricultura                                           Arroz

Agricultura                                           Maiz

Agricultura                                           Trigo

Industria                                               Construccion

Industria                                                Metal

Industria                                                Electrica

Tengo otra tabla que se llama EMPRESAS con tres campos: NOMBRE DE LA EMPRESA, ACTIVIDAD y SUBACTIVIDAD

El nombre de la empresa puede ser cualquiera pero los otros dos campos no, hay que elegirlos de una lista. Así el campo ACTIVIDAD, mediante un cuadro combinado, hay que elegir de la tabla LISTA DE ACTIVIDADES de entre los campos ACTIVIDAD (que son dos Agricultura o Industria). Y el campo SUBACTIVIDAD hay que elegirlo de la misma tabla LISTA DE ACTIVIDADES de entre los campos SUBACTIVIDAD.

Escribo un nombre de empresa cualquiera, elijo con el cuadro combinado una ACTIVIDAD, p.ej elijo Agricultura. Y ahora me viene el problema. Voy a elegir la SUBACTIVIDAD y me salen todas, las referentes a agricultura y las referentes a Industria. Quisiera que solo me salieran las referentes a la ACTIVIDAD que he elegido. Si he elegido Agricultura que me salgan a elegir entre Arroz, Maiz, Trigo pero no las referentes a Industria, y viceversa.

¿Alguien sabe como hacerlo?

1 Respuesta

Respuesta
2

Puedes hacerlo de muchas formas, todo depende de como te guste. Por ejemplo

1ª Forma. Vamos a suponer que los combinados se llaman Actividad y SubActividad. Deja el origen de la fila de ambos combinados en blanco y en el evento Al recibir el enfoque del combinado Actividad creas un proc de evento y entre Private Su y End Sub pones

Actividad.rowsource="select actividad from empresa group by actividad"

Es decir, que cuando el combinado reciba el enfoque su origen de la fila sean los valores(sin repetir) de actividad de la tabla Empresa.

En esas mismas propiedades, en el evento Después de actualizar creas otro proc de evento y pones

subactividad.rowsource="select subactividad from empresa where actividad='" & me.actividad & "' group by subactividad"

Es decir, que el origen de la fila del combinado Subactividad sean aquellos valores(sin repetir) de la tabla empresas cuya actividad sea igual a la que has escogido en el combinado Actividad.

2º Forma En el origen de la fila del combinado Actividad pones

Select actividad from empresa group by actividad;

En el origen de la fila del combinado subactividad, con el botón de generar(el de los tres puntos a su derecha) añades la tabla empresa y llevas a la cuadrícula los campos subactividad y actividad. Arriba en el ribbon de Access pulsas el botón de Agrupar y debajo del campo Actividad, en la casilla de criterios pones

Forms! Nombredelformulario! Actividad

Es conveniente, por si cambiaras de actividad en el combinado, que en las propiedades del combinado Subactividad, en eventos-al recibir el enfoque pongas

Subactividad. Requery

Hay más pero habría que saber como trabajas.

Hola, probé hacerlo de la 2ª forma pero algo se me pasa. No se que hago mal o que me falta. Muchas gracias

En el criterio tu pones [actividad] pero eso no le dice nada, tienes que poner como te dije Forms! Nombredelform! Actividad, en tu caso sería( lo digo por lo que creo ver en la imagen)

Forms! Eleccion! Actividad

De todas formas, si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un par de ejemplos. Si lo haces, en el asunto del mensaje pon tu alias Al Kaplan, ya que si no sé quien me escribe no los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas