Filtrar cuadro combinado según el valor de otro

Por si alguien puede ayudarme

Tengo una tabla en la que existen dos cuadros combinados uno llamado categoría y otro producto, he confeccionado un formulario y lo que me gustaría que hiciera es que según el valor que tengo en el cuadro combinado categoría solo me mostrara en el cuadro combinado llamado producto los que tengan esa categoría

Pongo una imagen de la tabla, muchas gracias por su ayuda

2 respuestas

Respuesta
1

Puedes hacerlo de muchas formas. Por ejemplo, yo tengo una tabla Productos como en la imagen

Tambien tengo un formulario Ventas con un subformulario DetalleVenta como

Voy a elegir la categoría Bebidas. Cuando "despliego" el combinado Producto sólo me muestra aquellos productos de esa categoría.

Si luego selecciono otra categoría

lo mismo.

En este caso, le tengo puesto en el evento Al recibir el enfoque del combinado producto

Private Sub Producto_GotFocus()
If IsNull([Categoria]) Then
MsgBox "Debe elegir una categoría", vbOKOnly + vbInformation, "Muchas gracias"
Else
Producto.RowSource = "select producto from productos where categoria='" & Me.Categoria & "' and existencias>0"
End If
End Sub

Buenas tardes y gracias por tu ayuda que me es muy necesaria

He desarrollado la tabla como tu me indicabas pero cuando le indico la categoría no me da ningún tipo de producto

te adjunto una imagen y muchas gracias por tu ayuda

En principio la instrucción está bien redactada. Lo único que se me ocurre es que el combinado Categoría, tenga más de una columna y la dependiente no sea la de Categoría, sino algo como IdCategoría.

De todas formas, si quieres, repito, si quieres, mándame una copia del formulario a [email protected], para que le eche un vistazo.

Respuesta
1

Si no quiere hacerlo con SQL puede utilizar el Generador de Expresiones en las propiedades del Origen de la fila.

Diseño del formulario

Haga clic en el botón que indica la flecha, para activar la cuadricula de diseño.

Esto lo lleva a la cuadricula de diseño

Busque el nombre del formulario que está cargado y seleccione el cuadro combinado, en este ejemplo, cboCategoria.

Haga clic en Aceptar.

Ahora en el evento Después de actualizar del cuadro combinado cboCategoria cambiel por el nombre real) ingrese el siguiente código.

Private Sub cboCategoria_AfterUpdate()
  Me.cboProductos.Requery
End Sub

En formulario debe quedar algo como:

Si elijo CARNES al seleccionar abrir la lista muestra solo carnes

Ahora selecciono VERDURAS

No obstante es más practico como lo explican con SQL, pero a nivel informativo de dejo esta opción.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas