Lo siento de antemano por la larga descripción, pero parecía el curso de acción prudente.

Tengo problemas para obtener un cuadro combinado para completar correctamente un campo de texto en un subformulario.

Basado en navegar por la web y en una guía útil sobre cómo agregar VBA a los formularios a principios de esta semana, esto es lo que probé.

He creado una tabla tblPgo que muestra varias probabilidades de que un proyecto avance y las descripciones correspondientes.

enter image description here

Tengo una segunda tabla tblDetails que contiene información sobre los artículos que vendemos.

Estas dos tablas interactúan en un subformulario tblDetals subform.

Agregué un cuadro combinado cmbPgoValue al subformulario. El cuadro combinado obtiene sus datos de tblPgo

La fuente de control es Pgo

La fuente de la fila es SELECT [tblPgo].[PgoID], [tblPgo].[Pgo], [tblPgo].[PgoDescription] FROM tblPgo ORDER BY [Pgo];

La sintaxis de origen de fila fue creada por el asistente de cuadro combinado.

En el subformulario, creé un cuadro de texto independiente llamado Pgo Description para recibir el texto PgoDecription correspondiente al valor Pgo seleccionado en el cuadro combinado.

cmbPgoValue tiene el siguiente código de evento posterior a la actualización

Private Sub cmbPgoValue_AfterUpdate()

Me.PgoDescription = Me.cmbPgoValue.Column(2)

End Sub

Cuando utilizo el cuadro combinado para seleccionar un valor de Pgo, la descripción de Pgo correcta completa el registro actual y el registro debajo de él. Cuando intento completar el registro llenado incorrectamente, obtengo un error sobre la duplicación de índices, etc.

Intenté delimitar el cuadro de texto, pero no parece ayudar.

Gracias de antemano.

enter image description here

0
Exiled_In_CA 31 jul. 2020 a las 02:02

1 respuesta

La mejor respuesta

Eso es de esperar con el cuadro de texto UNBOUND. Solo hay un cuadro de texto Descripción, por lo que todos los registros mostrarán la misma información. No debería duplicar esta información en tblDetails. En lugar de VBA, solo tenga expresión en el cuadro de texto ControlSource:

=cmbPgoValue.Column(2)

1
June7 30 jul. 2020 a las 23:41