Anda di halaman 1dari 2

Práctica: En este caso vamos añadir al formulario [Productos] un Cuadro

Combinado y un Grupo de Opciones. El cuadro combinado nos permitirá


buscar un producto por su nombre y el grupo de opciones filtrar los
productos por categoría. Formulario, combo y grupo de opciones tienen que
trabajar de forma sincronizada.

Private Sub cboBuscarProducto_AfterUpdate()


Dim Producto_seleccionado As Long
'Se almacena el identificador del producto seleccionado
Producto_seleccionado = Me.cboBuscarProducto

If Me.FilterOn = True Then 'Si había algún filtro activo


Me.FilterOn = False 'Suprime el Filtro
Me.ProductosPorCategorias = 1 'Asigna el valor Todas las Categorías
End If

'Buscar el registro que coincida con el control


Dim rs As Object
Set rs = Me.Recordset.Clone
'Se localiza el producto seleccionado inicialmente
rs.FindFirst "[IdProducto] = " & Str(Nz(Producto_seleccionado, 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Private Sub cboBuscarProducto_Enter()
AllowEdits = True
End Sub

Private Sub cboBuscarProducto_Exit(Cancel As Integer)


AllowEdits = True
End Sub

Private Sub ProductosPorCategorias_AfterUpdate()

'Preparamos el filtro según la opción seleccionada


If Me.ProductosPorCategorias = 2 Then
Me.Filter = "IdCategoría=1"
ElseIf Me.ProductosPorCategorias = 3 Then
Me.Filter = "IdCategoría=2"
ElseIf Me.ProductosPorCategorias = 4 Then
Me.Filter = "IdCategoría=3"
ElseIf Me.ProductosPorCategorias = 5 Then
Me.Filter = "IdCategoría=4"
ElseIf Me.ProductosPorCategorias = 6 Then
Me.Filter = "IdCategoría=5"
ElseIf Me.ProductosPorCategorias = 7 Then
Me.Filter = "IdCategoría=6"
ElseIf Me.ProductosPorCategorias = 8 Then
Me.Filter = "IdCategoría=7"
ElseIf Me.ProductosPorCategorias = 9 Then
Me.Filter = "IdCategoría=8"
End If

'Si el usuario elige la primera opción "Todas las categorías"


'desactivamos cualquier filtro para mostrar todos los productos
'en caso contrario lo activamos.

If Me.ProductosPorCategorias = 1 Then
Me.FilterOn = False
Else
Me.FilterOn = True
End If
End Sub

Private Sub ProductosPorCategorias_Enter()


AllowEdits = True
End Sub

Private Sub ProductosPorCategorias_Exit(Cancel As Integer)


AllowEdits = False
End Sub

Anda mungkin juga menyukai