Combos en Cascada en Sub Formulario

Tengo un Subformulario llamados “SubFrm_Partidas” que contienen 8 columnas y entre esas columnas quiero colocar 3 combos combinados en cascada.

Los Combos son:

  • CmbTipoDoc
  • CmbNumeroDoc
  • CmbDescripcion

La Tabla “CatalagoDeDocumento” que va a alimentar los combos está conformada así:

  • TipoDoc (Llave principal)
  • NumeroDoc
  • DescripcionDoc

Los campos señalados están en una sola tabla, en vista que esta tabla se llenara a través de un formulario llamado “Catálogos de Documento” para agregar futuros Documentos que se deseen agregar

Agradezco la ayuda en la configuración de estos 3 combos para su mejor funcionamiento en cascada.

Anexo imagen del Formulario Principal, el cual tiene el SubFrm_Partidas

1 respuesta

Respuesta
1

No es un buen diseño, en cuanto se seleccione un elemento en el primer combo, el segundo solo mostrará los elementos asociados (parte del mismo conjunto) y los registros que no tengan -uno de los valores filtrados- se mostraran vacíos.

Se pueden poner combos (pero no en cascada), la interdependencia de los combos en cascada no es adecuada para los formularios continuos pues se condicionara siempre por el registro activo.

Gracias por la pronta atención, Que me recomendaría en este caso

Gracias por la pronta atención a mi pregunta. Agradezco que me recomiende una solución a mi solicitud

Gracias por la pronta atención a mi pregunta. Agradezco que me recomiende una solución a mi solicitud

Lo que mas se asemeja a esa opción (y no es la optima) consiste en superponer a un cuadro de texto 'clásico' un/el combo y jugar con las propiedades enviar al fondo o al primer plano al recibir o perder el enfoque el cuadro de texto.

Con ello se logra que si es 'el objeto activo' se presente el combo (para hacer la selección) y al perder el foco se muestre el cuadro de texto (que solo tendrá el valor real seleccionado en el combo), de esa forma se logra una 'dependencia independiente' (que puede dar problemas si no se hace bien).

¿Qué problema hay en que se modifiquen los valores en una ventana independiente? Y se conserve el método clásico en el subformulario sin ningún tipo de superposición de objetos.

En la ayuda de Access se recomienda evitar la superposición de objetos, pero es el programador el que tiene la decisión final.

Amigo, por favor una repuesta más practica, no soy un ducho en Access

Los objetos en Access pueden solaparse (unos encima de otros) y solo se vera el que este en la parte superior, si ambos tiene las mismas dimensiones solo se vera uno de ellos: 'el activo'.
Al que ocupe su mismo lugar en el plano (X, Y) el activo lo enviara 'al fondo' (lo cambiara de posición en el plano Z) y no solo no se vera sino que tampoco se podrá acceder a el (seleccionarlo con el ratón).

He creado dos objetos un cuadro de texto y un ComboBox, ambos tiene las mismas dimensiones y ambos ocupan el mismo lugar, en sus propiedades al cuadro de texto le he activado la propiedad 'traer al frente' dejando debajo y oculto al comboBox.

Ambos tienen el mismo 'origen del control' y en el combobox su propiedad 'origen de la fila' lo que corresponda (una consulta de selección, una lista de valores...)

Al cuadro de texto en su evento 'al recibir el foco' le he indicado que se lo envíe al combobox que esta debajo, por lo que se mostrara:

Private Sub Tipo_Documento_GotFocus()
Me.Cbo_Tipo_Documento.SetFocus
End Sub

Al combo en su evento 'al recibir el foco' le he indicado que se expanda:

Private Sub Tipo_Documento_GotFocus()
Me.Cbo_Tipo_Documento.SetFocus
End Sub

Y en su evento 'Salir'  que haga visible el campo con el que comparte la posición:

Private Sub Cbo_Tipo_Documento_Exit(Cancel As Integer)
Me.Tipo_Documento.Visible = True
End Sub

Aconsejo que al combo se le desactive su propiedad 'punto de tabulación' y todas aquellas que puedan hacerlo visible  cuando no se le necesite.

Se repite esto mismo para cada combobox de los que están en cascada (están relacionados y son interdependientes) y se lograra una aproximación a la estética que se busca.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas