Access - Cuadro Combinado dependiente del valor de otros 3 cuadros combinados

 
Vista:

Cuadro Combinado dependiente del valor de otros 3 cuadros combinados

Publicado por Apotema (6 intervenciones) el 14/03/2016 09:56:31
Buenas,
en primer lugar, muchas gracias por leerme. Estoy usando Access 2007 para desarrollar una base de datos, soy bastante novato en este software (no se nada de SQL). Lanzo mi duda, a ver si existe alguna solución sencilla:

En un formulario, además de otros elementos, tengo lo siguiente:

- Cuadro Combinado 1: selecciona valores a partir de una tabla de valores que introduje a mano (provincia, para ser exacto)
-Cuadro Combinado 2: a partir de una tabla 'Provincias y Pueblos', aparece un desplegable con los pueblos cuya provincia coincide con la provincia que se introdujo anteriormente en el Cuadro Combinado 1
-Cuadro Combinado 3: se selecciona una valor a partir de una tabla de valores introducida a mano (son 4 opciones, y nos diría el 'Sector Empresarial' en el que estamos interesado, por ejemplo, Tipo A, B, C o D)

Bien, pues aquí viene mi duda:

Quiero crear un Cuadro Combinado 4, que sería el 'Nombre de la Empresa', en el cual se muestre una lista, cuyos valores provienen de una tabla distinta a las anteriores. Los valores que quiero que se muestren tienen que ser los nombres de las empresas cuyos campos coincidan con los 3 cuadros combinados anteriores, es decir, quiero que esta lista esté filtrada por 3 valores introducidos en los cuadros combinados que especifiqué anteriormente .

Por ejemplo, quiero hacer la siguiente selección:
Sevilla / Mairena / Tipo B / MetalesCOMP

PD: la tabla donde tengo el nombre de todas las empresas (por ejemplo, MetalesCOMP), está organizada de la forma PROVINCIA, PUEBLO, SECTOR, EMPRESA

Muchas gracias
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Cuadro Combinado dependiente del valor de otros 3 cuadros combinados

Publicado por Enrique Heliodoro (1664 intervenciones) el 14/03/2016 11:32:57
A momento actual ¿hay alguna relación entre los diferentes combos? .... se presume una entre provincias y pueblos, pero no esta claro si esta establecida y de estarlo .... sobraría posiblemente la provincia (a la hora de filtrar).

Convendría aclarar algún que otro punto, por ejemplo: si un combo depende de una tabla o de una lista de valores introducida a mano (en las propiedades del combo hay que especificarlo o no funcionara bien).

Pero en definitiva:
Lo que hay que hacer es crear un filtro en tiempo de ejecución que tome como referentes a los valores de los combos y después aplicarlo.

Lo ideal seria crearlo en una sub-función y llamarla (utilizar la sub-función) cada vez que se modifique cualquiera de los referentes (combos)

Para ello hay que evaluar de forma independiente a cada objeto (combo en este caso) porque en algún momento (el inicial cuando menos) algún combo pudiera estar vacío y ello provocaría un error, intenta emular algo como esto, teniendo en cuenta que DESCONOCEMOS la estructura real de tus datos (pero asumiendo que tu si la conoces, podrás aplicarla o solicitar aclaraciones, eso si con datos mas realistas que los actuales empíricos).

Private function CreaFiltro() as String
'evaluamos el primer combo:
IF not IsNull(Me.combo1) Then Creafiltro = "Provincia ='" & Me.Combo1 & "'"
'al evaluar el segundo tenemos que verificar si el primero genero algo para concatenar o no:
If Len(creafiltro) <> 0 Then CreaFiltro = CreaFiltro & " And "
'ya con AND o sin el, añadimos la segunda condición:
IF not IsNull(Me.combo2) Then Creafiltro = Creafiltro & "Pueblo ='" & Me.Combo2 & "'"
'Lo repetimos para los siguientes:
If Len(creafiltro) <> 0 Then CreaFiltro = CreaFiltro & " And "
IF not IsNull(Me.combo3) Then Creafiltro = Creafiltro & "Sector='" & Me.Combo3 & "'"
If Len(creafiltro) <> 0 Then CreaFiltro = CreaFiltro & " And "
IF not IsNull(Me.combo4) Then Creafiltro = Creafiltro & "Empresa='" & Me.Combo4 & "'"

' ya tenemos una condición que se aplicara alla donde se necesite aplicar y eso ... esta aun por definir
End Function


En el adecuado evento de cada combo (normalmente al cambiar) se llamaría a la función (que devolvería un texto con el filtro) y se aplicaría a ¿¿¿.....???

Para verificar que funciona, una opción es presentar en un cuadro de dialogo el valor del filtro, algo como

MsgBox CreaFiltro()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cuadro Combinado dependiente del valor de otros 3 cuadros combinados

Publicado por Apotema (6 intervenciones) el 15/03/2016 11:26:55
Muchísimas gracias por tu aportación, Enrique Heliodoro, me fue bastante útil.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar