Está en la página 1de 2

FILTRO POR COMBO1

En este ejemplo vamos a ver un ejemplo muy simple de


cómo podemos filtrar los datos de un formulario a través
del valor que seleccionemos en un combo.

Vamos allá...

1.- Creamos una tabla, a la que llamaremos TContactos. En


ella creamos los siguientes campos:

– [Id] → Autonumérico (clave principal)


– [Nombre] → Texto
– [Empresa] → Texto
– [Cargo] → Texto

Rellenamos manualmente algunos registros de esta tabla

2.- Creamos un formulario basado en la tabla TContactos. A este formulario lo llamamos


FContactos.

3.- Con el formulario en vista diseño, sacamos las propiedades del campo [Id] y nos vamos a
Pestaña Formato → Visible, y le situamos la propiedad en NO

4.- En el encabezado del informe insertamos un cuadro combinado. Cuando nos salga el
asistente lo configuramos de la siguiente manera:
– Buscar los datos en una tabla
– Seleccionamos la tabla TContactos
– Añadimos los campos [Id] y [Nombre]
– Ordenamos [Nombre], ascendente
– Ocultamos la clave principal
– Marcamos la opción “Recordar el valor para utilizarlo más adelante”
– Como nombre para la etiqueta escribimos: “Buscar contacto:”

5.- Sacamos las propiedades de ese cuadro combinado y nos vamos a la pestaña Otras →
Nombre, y le escribimos cboBusca

6.- Todavía en las propiedades del cuadro combinado, nos vamos a la pestaña Eventos →
Después de actualizar, y le generamos el siguiente código2:


Private Sub cboBusca_AfterUpdate()
'Si no hubiera valor no se ejecuta el proceso
If IsNull(Me.cboBusca.Value) Then Exit Sub
'Pasamos el valor del combo a una variable
Dim vCont As Long 'Long porque el valor que devuelve el combo es el identificador del
contacto
vCont = Me.cboBusca.Value
'Creamos un recordset, que será el mismo que el que da origen al formulario
Dim rst As Recordset
Set rst = Me.Recordset.Clone
'Realizamos la búsqueda en el recordset

1 La BD de ejemplo os la podéis bajar aquí.


2 Para generar código nos ponemos en la parte en blanco junto al evento que queramos, y veremos cómo nos aparece un pequeño
botón de puntos suspensivos. Si hacemos click sobre él nos aparecerá una ventana. Le decimos que queremos generar código.
Se nos abrirá el editor de VB, con dos líneas por defecto (Private Sub... y End Sub). Esas dos líneas no deben tocarse. El código lo
escribimos entre dichas líneas

1
Visítame en http://siliconproject.com.ar/neckkito/
rst.FindFirst ("[Id]=" & vCont)
'Situamos los datos del formulario en el registro encontrado
Me.Bookmark = rst.Bookmark
End Sub

Y eso es todo. Fácil, ¿no? ;)

Un saludo.

2
Visítame en http://siliconproject.com.ar/neckkito/

También podría gustarte