Solución
- Creamos un formulario continuo basado en la tabla Clientes.
- En el panel de navegación, clic en la tabla Clientes.
- En la pestaña Crear, clic en Más formularios > Varios elementos.
- Insertamos un cuadro combinado independiente y le damos el nombre de Cuadro_combinado
- En la Hoja de propiedades del cuadro combinado, en la pestaña Datos modificamos estas tres propiedades
- En la Hoja de propiedades del cuadro combinado, en la pestaña Eventos, clic en Al cambiar y copiamos el siguiente código:
Private Sub Cuadro_combinado_Change2() ' Elimina el filtro del formulario, ' si el cuadro combinado está vacío If Nz(Me.Cuadro_combinado.Text) = "" Then Me.Form.Filter = "" Me.FilterOn = False ' Si se filtra un ítem del cuadro combinado, ' realiza una búsqueda exacta en el formulario ElseIf Me.Cuadro_combinado.ListIndex <> -1 Then Me.Form.Filter = "[NombreCompañía] = '" & _ Replace(Me.Cuadro_combinado.Text, "'", "''") & "'" Me.FilterOn = True ' Filtra en formulario con una coincidencia parcial Else Me.Form.Filter = "[NombreCompañía] Like '*" & _ Replace(Me.Cuadro_combinado.Text, "'", "''") & "*'" Me.FilterOn = True End If ' Mueve el cursor al final del cuadro combinado Me.Cuadro_combinado.SetFocus Me.Cuadro_combinado.SelStart = Len(Me.Cuadro_combinado.Text) End Sub
En Origen de fila, introducimos la siguiente consulta o la creamos con el generador de consultas (clic en los 3 puntos suspensivos).
SELECT Clientes.NombreCompañía FROM Clientes;
Empleamos la función Replace para reemplazar el apóstrofe simple ' por el doble ''. Pues si no, al buscar compañías con apóstrofe generaría un error.
Resultado
Ahora podemos o bien seleccionar un elemento de la lista del cuadro combinado, o teclear la cadena de texto que deseemos. Como se puede ver en la imagen, realiza una búsqueda parcial de las cadenas de texto: super, comi or chin.
Referencias
Entradas relacionadas