Limitar una lista de combox,

Nuevamente recurro a Ustedes,

Tengo un subformulario con un campo de tipo cuadro Combinado llamado(CodProducto), selecciona el campo deseado, pero necesito que cuando seleccione ese valor, lo desaparezca, es decir, selecciono un campo y cuando se desliegue nuevamente el cuadro combinado no aparezca el valor ingresado, para que así el usuario no pueda seleccionar nuevamente este valor, y le permita ingresar el resto de la lista. Y así sucesivamente, ya que son códigos de productos que se ingresan en una Cotización.

1 Respuesta

Respuesta
1

Te voy a responder, aunque no hayas valorado mi anterior respuesta. Se puede hacer de varias formas, para lo que habría que saber como son el formulario y subformulario. Supongamos que tengo una tabla Productos

Te los pongo por orden alfabético para que se vea mejor.

Si tengo el formulario Compras con el subformulario DetalleCompra

Creo una tabla llamada Aux como en la imagen

Esta tabla Aux, cuando se "rellene", será el origen de la fila del combinado producto del subformulario DetalleCompra

Cuando abro el formulario Compras en un registro nuevo, primero borra lo que hubiera en la tabla Aux, luego inserta en ella todos los productos de la tabla Productos de forma que cuando pongo el cursor en el combinado

Selecciono el primero Algas Kombu, cuando en otro registro del subformulario quisiera elegir otro Producto

Ya no me aparecen las algas. Si elijo Arenque ahumado, en el siguiente

Ya no aparece, etc

Cuando me fuera a una compra nueva se repetiría el proceso.

En el formulario Compras, en el evento Al activar el registro le tengo puesto

Private Sub Form_Current()
NumFactura.SetFocus
If Me.NewRecord Then
DoCmd.RunSQL "delete * from Aux"
DoCmd.RunSQL "insert into aux select producto from productos"
End If
End Sub

Y en los eventos Al recibir el enfoque y  Después de actualizar del combinado Producto

Private Sub Producto_AfterUpdate()
Antes = DLookup("existencias", "productos", "producto='" & Me.Producto & "'")
DoCmd.RunSQL "delete * from aux where producto='" & Me.Producto & "'"
Precio.SetFocus
End Sub
Private Sub Producto_GotFocus()
Producto.Requery
End Sub

Es decir, elimina de la tabla Aux el producto que acabo de elegir y cuando recibe el enfoque, que "reconsulte" su origen de la fila.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas