Mostrar un desplegable donde muestre valores en función del valor que haya en el campo del formulario.

Intento explicarme.

Tengo un formulario en vista de hoja de datos donde se recoge dos campos, CÓDIGO ARTICULO y NOMBRE PROVEEDOR. El primer campo esta informado en todos los registros pero el segundo está vacío.

Quiero que dependiendo del valor que haya en el campo CÓDIGO ARTICULO pueda abrir un desplegable en el campo NOMBRE PROVEEDOR donde se muestre una lista de valores a asociados al campo CÓDIGO ARTICULO.

Se como crear un cuadro combinado si escribo yo el valor para que me devuelva su otro valor asociado, pero no se como hacerlo cuando los valores ya están escritos en la hoja de datos.

2 Respuestas

Respuesta
1

Puedes hacerlo de muchas formas. Por ejemplo, tengo el formulario Clientes, donde en el combinado Clientes puedes ver que no muestra nada

Ahora bien, si en el combinado Pais elijo uno, en este caso Alemania

Cuando me voy al combinado Cliente, sólo me muestra aquellos que su país sea Alemania

En este caso, en el origen de la fila del combinado Clientes lo dejo en blanco, y en el evento Después de actualizar del cuadro combinado País es cuando le doy valor con

Private Sub Pais_AfterUpdate()
Cliente.RowSource = "select cliente from Clientes where pais='" & Me.Pais & "'"
End Sub

También podrías hacerlo dándole origen de la fila y poner en la casilla Criterios de la consulta que crearas

Como forms! Clientes! Pais

A mi, personalmente, me gusta más la primera, pero...

No es lo que busco.

En mi caso el campo CÓDIGO ARTICULO esta informado, y el campo del NOMBRE PROVEEDOR seria el que tuviera el desplegable.

Tengo una consulta que me devuelve código articulo y proveedor, pero no se como hacer esto.

Pues más sencillo es. En el evento Al recibir el enfoque del combinado Nombre Proveedor puedes poner

[Nombre proveedor].rowsource="select [nombre proveedor] from Tabla o Consulta where [código artículo]='" & me.[código artículo]& "'"

[nombre proveedor].dropdown

Mira, si quieres, repito, si quieres, mándame un mensaje (sólo el mensaje) a [email protected] y te mando un par de ejemplos. Uno con código VB y otro con origen de la fila en el combinado.

Si lo haces, en el asunto del mensaje pon tu alias Isidro, ya que si no sé quien me escribe ni los abro.

Lo he puesto así pero la lista sale en blanco

Private Sub Cuadro_combinado32_GotFocus()
[Cuadro_combinado32].RowSource = "select [NOM_PRO] from CONS_DETALLE_RECEPCIONES_CONSULTA_RECEPCIONES1 where [COD_ART]='" & Me.[COD_ART] & "'"
[Cuadro_combinado32].Dropdown

End Sub

¿Has mirado si el cuadro de texto donde aparece el Código del articulo en el formulario se llama así, Cod_art o el campo de la consulta se llama Cod_Art?

En caso de que Cod_Art sea numérico la instrucción sería

Cuadro_combinado32].RowSource = "select [NOM_PRO] from CONS_DETALLE_RECEPCIONES_CONSULTA_RECEPCIONES1 where [COD_ART]=" & Me.[COD_ART] & ""

Es decir Comillas & y cierra & comillas comillas

Si fuera texto, tipo 2AB456 entonces sería

Cuadro_combinado32].RowSource = "select [NOM_PRO] from CONS_DETALLE_RECEPCIONES_CONSULTA_RECEPCIONES1 where [COD_ART]='" & Me.[COD_ART] & "'"

Es decir, apostrofe comillas & y cierra comillas apostrofe comillas

Respuesta
1

Si quiere envíeme la base de datos con información ficticia a [email protected] y trato de colaborarle

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas