Anda di halaman 1dari 2

FILTRO POR COMBO1 En este ejemplo vamos a ver un ejemplo muy simple de cmo podemos filtrar los datos

de un formulario a travs 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] Autonumrico (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 diseo, sacamos las propiedades del campo [Id] y nos vamos a Pestaa 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 Aadimos los campos [Id] y [Nombre] Ordenamos [Nombre], ascendente Ocultamos la clave principal Marcamos la opcin Recordar el valor para utilizarlo ms adelante Como nombre para la etiqueta escribimos: Buscar contacto: 5.- Sacamos las propiedades de ese cuadro combinado y nos vamos a la pestaa Otras Nombre, y le escribimos cboBusca 6.- Todava en las propiedades del cuadro combinado, nos vamos a la pestaa Eventos Despus de actualizar, y le generamos el siguiente cdigo 2: 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 bsqueda en el recordset
1
2

La BD de ejemplo os la podis bajar aqu.

Para generar cdigo nos ponemos en la parte en blanco junto al evento que queramos, y veremos cmo nos aparece un pequeo botn de puntos suspensivos. Si hacemos click sobre l nos aparecer una ventana. Le decimos que queremos generar cdigo. Se nos abrir el editor de VB, con dos lneas por defecto (Private Sub... y End Sub). Esas dos lneas no deben tocarse. El cdigo lo escribimos entre dichas lneas

Vistame 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. Fcil, no? ;) Un saludo.

Vistame en http://siliconproject.com.ar/neckkito/

Anda mungkin juga menyukai