Access un formulario varios elementos con un cuadro combinado

Me gustaría un poco de ayuda en un problema ya que soy un poco novato en el access.
Tengo un formulario varios elementos donde salen todas las personas que trabajan en la empresa.
Me gustaría poner un cuadro combinado donde saliera los centros de trabajos donde están estas personas y
al pinchar en centro de trabajo en concreto y saliera todas las personas de ese centro y
las que no sean de esa centro no salgan.
Tengo creado varias tablas:
Personal: id (clave principal), nombre, apellido, id_centro, centro
Centro: id_centro, centro (clave principal)
Tengo creada la relación de 1 ( tablaba centro) a N (personal centro) con exigir integridad.
Si se necesita algún dato mas os lo digo.

1 respuesta

Respuesta
1

En la página: http://angelessebas.es/

En el apartado supuestos y soluciones ---> Cuadros Combinados ---> Cuadros Combinados en cascada

Tienes algún ejemplo que te puede servir.

Cualquier duda, me consultas.

La verdad es que no he conseguido que me funcionara los supuesto y soluciones, y por lo que he ido viendo en el supuesto no es lo que me gustaría hacer.

:-((

Supongo que es por el campo Centro de la tabla Centros por el que quieres filtrar el cuadro combinado Personal y quieres que se visualicen el nombre y apellido del personal del centro seleccionado.

Primero: te aconsejo que no hagas las relaciones de las tablas "a priori", te puedo decir por experiencia, que solo da problemas. Es mejor que las relaciones las hagas cuando las necesites (en las propias consultas, formularios... etc.)

Insertas 2 cuadros combinados, no utilices el asistente, sino que con botón derecho sobre ellos vas a propiedades.

En las propiedades del 1º:

Nombre: selCentro

Origen de la fila: Select Centro from Centros order by Centro

(Es decir, que las filas sean el campo Centro de la tabla Centros ordenados por el campo Centro)

Nº de columnas: 1

Ancho de columna: El que quieras poner, por ejemplo: 5,53

Columna Dependiente: 1

Al hacer clic: Procedimientos de evento ---> picas en el cuadrado de la derecha, el de los ... para abrir el generador de código y pones: Me. Refresh (esto es para actualizar el formulario y que el cuadro combinado coja el valor que hayas seleccionado al hacer clic sobre una fila y el 2º cuadro combinado ejecute la sql que le da el origen de la fila)

En las propiedades del 2º:

Nombre: selPersona

Origen de la fila: Select Nombre, Apellido from Personal where Centro='" & form!selCentro.Value & "' order by Nombre

(Es decir, selecciona los campos Nombre y Apellidos de la tabla Personal cuyo campo Centro sea igual al valor del cuadro combinado selCentro)

Nº de columnas: 2

Ancho de columna: 2,50;2,50 (el ancho que quieras para el nombre y apellido separados por ;)

Espero que no tengas problemas.

hola ángeles,

Gracias a tus consejo que distes en :

http://www.lawebdelprogramador.com/foros/Access/1281788-filtrar_formulario_con_un_cuadro_combinado...!!!.html

Lo conseguí hacer!!!

Me gustaría si me podías seguir ayudando un poco más :-)

Tengo ese formulario creado , pero ahora le he dado una vuelta de tuerca,

he metido 2 cuadros combinados,

el 1º- cuadro_combinado82

Private Sub Cuadro_combinado82_AfterUpdate()
Me.Cuadro_combinado80.Requery
End Sub

Private Sub Cuadro_combinado82_Click()

Me.Refresh
Form.RecordSource = "Select * from Centro where Centros='" & Form!cuadro_combinado82.Value & "'"

el 2º- cuadro_combinado80

Private Sub Cuadro_combinado80_AfterUpdate()
Me.Cuadro_combinado84.Requery
End Sub

Private Sub Cuadro_combinado80_Click()
Me.Refresh
Form.RecordSource = "Select * from Personal where Edificio='" & Form!Cuadro_combinado80.Value & "'"
End Sub

Todo va de perfecto, me deja colocados en los registros el Centro con todos los Edificios y me dice que personas hay trabajando concretamente en ese Centro-Edificio. Pero claro ahora viene la vuelta de tuerca cada edificio tiene sus plantas.

Así que creo un 3º cuadro combinado para que a su vez lo ponga por plantas,

3º- Cuadro_combinado84

Private Sub Cuadro_combinado84_Click()
Me.Refresh
Form.RecordSource = "Select * from Personal where Planta='" & Form!Cuadro_combinado84.Value & "'"
End Sub

Pero cuando todo va bien con los dos primero selecciono la planta en 3º cuadro, me pone los registros de todos los centro que tiene esa planta sin mantener la selección que se hizo de los 2 primeros cuadros combinado.

No se si me he explicado muy bien, si necesitas algo mas, lo que necesites dímelo.

Muchas gracias de antemano Angeles.

Estas filtrando solo por la planta... ¿Y el edificio que...?

Form.RecordSource = "Select * from Personal where Planta='" & Form!Cuadro_combinado84.Value & "' and Edificio='" & Form!Cuadro_combinado80.Value & "'"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas