Access - Cuadro combinado en cascada

 
Vista:

Cuadro combinado en cascada

Publicado por Sonia (4 intervenciones) el 13/10/2015 14:30:29
Hola,
Tengo una tabla Area con el campo area y una tabla Datos personales con los campos: apellido1, apellido2, nombre y area (que selecciona los registros de la tabla area). Me gustaria en un formulario tener dos combobox y dependiendo del valor que introduzco en area me aparezca en el siguiente combobox el personal que está dentro de ese área. Llevo como 5 horas buscando por internet y no hay manera que me salga, no sé si tengo problemas en la tabla, en la consulta o dónde. (Las tablas estan relacionadas una a varios) Gracias
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 en cascada

Publicado por Enrique Heliodoro (1664 intervenciones) el 13/10/2015 16:01:54
Mas que buscar para copiar, lo que es mas útil es razonar ....

Te ves capacitada para crear una consulta (en base al origen de datos del combobox segundo) en la que como condición te solicite uno de los datos del (supuesto) combo-box 'primero' ...

Aclarando: se da por supuesto que se selecciona en el combo-1 un dato (por ejemplo: Juan García) que estaría en el área 5 (o una que exista)

Si en la consulta (que se supone esta basada en el origen de datos del combo-2) se le pone como condición la anterior área 5 ¿devuelve el resultado esperado?.
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

Cuadro combinado en cascada

Publicado por Sonia (4 intervenciones) el 15/10/2015 14:35:13
Hola Enrique, no busco copiar ya que no me sirve de nada si no entiendo lo que hago.

Hoy he conseguido algo pero no lo que necesito ya que tengo que seleccionar varios registros del combobox 2 y sólo me deja seleccionar 1. Además los datos que me guarda en el formulario no son los que selecciono sino la clave principal que en este caso es el dni.

Tengo 3 tablas creadas: Datos personales, area, proyectos.
Tengo una consulta paramétrica que si pongo el área me muestra el nombre y apellido de la persona que trabaja en esa área pero no me sirve para lo que quiero, creo que es más sencillo que eligiendo un área me muestre el personal.
He hecho un formulario partiendo de la tabla proyectos pero hay 2 campos: area y personal que me tiene que recuperar datos de otras tablas. Hago un combobox de la tabla area y me funciona, es decir me muestra sólo las áreas que existen sin duplicar ni nada. El problema lo tengo cuando en el segundo combobox me tiene que mostrar sólo las personas que trabajan en el CB1 y además ha de ser el nombre y apellidos (ya que son campos diferentes).

Gracias a quien pueda ayudarme.
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
sin imagen de perfil

Cuadro combinado en cascada

Publicado por Enrique Heliodoro (1664 intervenciones) el 15/10/2015 20:32:09
Los combo-box solo permiten seleccionar uno de sus ítems, para poder seleccionar varios se tendría que recurrir a seleccionarlos uno a uno o cambiar el combo por un cuadro de lista (al que si se le puede activar la opción de selección multiple).

Una cosa seria seleccionar varios de sus elementos (ítems) y otra el guardado de ellos, algo que se tendría que efectuar mediante programación (razonablemente sencilla).

Lo que pretendes lograr se conoce como 'combos encadenados' y no son mas que consultas condicionadas (el primer combo puede ser una lista de valores, una tabla o una consulta que 'también' puede provenir de un encadenamiento).

Para el segundo combo se puede utilizar una tabla, pero al precisar condiciones no deja de ser básicamente una consulta, por ello lo de crear la consulta, imponerle como condición (bajo el campo que lo relacione con el otro combo) el valor del combo, eso si, tomara el valor de su columna predeterminada (no de la visible que puede ser cualquiera), para tomar una especifica se ha de utilizar la propiedad 'Column(nn)'.

Logrado lo anterior (que la consulta devuelva los ítems seleccionados en el primer combo), solo hay que poner la SQL de la consulta como origen de datos para el segundo combo y (en el evento que implique un cambio del primer combo) refrescar el contenido del segundo (por ejemplo con un 'Me.[segundo combo].Requery).

Para mostrar como un único elemento al conjunto de dos (el caso actual: nombre + apellido) lo mas lógico y sencillo es crear un campo ¿calculado? para ello, tan simple como (en la consulta que da lugar a su origen de datos):

NombreApellido: [el nombre] & " " & [el apellido]

Ello no sustituirá a los valores originales, con la excepción de que su uso sea simplemente referencial (que sirva solo a efectos de definir el ID que corresponda), esto es: si se utilizase el nombre en alguna parte (o el apellido) para otros fines, esos datos son 'reales' y están en la tabla, el campo calculado que los muestra juntos es un dato ¿fantasma?...
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

Cuadro combinado en cascada

Publicado por Sonia (4 intervenciones) el 16/10/2015 13:32:33
Gracias Enrique pero muchas de las cosas que pones me suenan a chino. Estoy bastante verde tanto en access como en programación.
Lo de nombre+apellido lo conseguí concatenando pero no sé cómo utilizarlo después para lo que quiero. Seguro que lo que busco es sencillo el problema es no tener claros los conceptos.
Voy a intentar crear una tabla o una consulta donde me muestre sólo las personas que hay en cada área y a partir de ahí ya iré probando a ver qué consigo.

Gracias
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
sin imagen de perfil

Cuadro combinado en cascada

Publicado por Enrique Heliodoro (1664 intervenciones) el 16/10/2015 21:27:01
Normalmente los combos 'en reposo' solo muestran una columna, en este caso solo permitirían el nombre o el apellido como dato mas representativo, el generar un nuevo campo que concatene nombre y apellido (o viceversa) nos permitiría visualizar un dato mas concreto que solo 'Juan' o solo 'García' ==> 'García, Juan' o bien 'Juan García'.

Dado que es un dato calculado (y por ello inexistente en la base de datos como tal dato) poca aplicación tiene con las clásicas excepciones (por ejemplo: utilizarlo para rellenar una etiqueta).

Normalmente aunque se utilicen nemotécnicos, internamente se utilizan los ID que definen a un único elemento sin permitir repeticiones.
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

Cuadro combinado en cascada

Publicado por Sonia (4 intervenciones) el 19/10/2015 11:05:33
Buenas,

Bueno por fin lo he conseguido, mediante una consulta he concatenado nombre y apellidos y después he podido hacer los dos combos dependientes !!!
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