Está en la página 1de 13

Buscar Registros de Diferentes Tablas de Datos desde una nica Ventana usando VBA

La mayora de las veces cuando creamos nuestra aplicacin ya sea una aplicacin pequea o
grande, de interfaz sencilla o al estilo de un CRM (Customer Relationship Management), una de
nuestras intenciones, bien por nosotros mismos, por los dems, o porque as nos lo exigen los
clientes o usuarios a los que va destinada nuestra aplicacin, es poder buscar algn dato concreto
de una serie de registros ubicados en nuestras tablas. Esto que os comento, alguna gente lo
soluciona indicando que para buscar un dato en un formulario en concreto pulsemos las
teclas CTRL+B, lo cual nos muestra la ventana de Buscar que lleva el Office incorporado en sus
aplicaciones. Otros utilizan una ventana donde nicamente permite buscar por un solo campo:
Pero, si queremos hacer algo ms profesional y verstil lo suyo es construir una ventana donde nos
permita buscar por ms de un dato como Nombre, Ciudad, Provincia, Fecha, Telfono Fijo, Mvil,
Fax, etc.

Normalmente, y as lo haca yo hasta hace no mucho, cuando disponemos de una aplicacin sobre
todo de gestin, lo que se suele hacer es crear un buscador para cada cosa, un buscador para
clientes, un buscador para proveedores, un buscador para materiales, un buscador para facturas,
etc, con lo cual podemos llegar a tener una serie de ventanas, que realmente son objetos y que
ocupan un espacio en nuestra aplicacin, dedicadas para buscar algo concreto.

La idea que hoy traigo es explicaros cmo en una sola ventana poder buscar registros en diferentes
tablas, as como indicarle al cuadro de lista qu debe mostrar, N de columnas, ancho de las
columnas, etc.

Este ejemplo lo vamos a dividir en tres partes: buscar, abrir el registro desde el buscador y
abrir el buscador desde el formulario de registros.

1) Buscar.

Para hacer esto, lo primero que debemos hacer es disear una ventana parecida a esta:
Como podris observar en este caso he aadido ms opciones que sern visibles nicamente
cuando marque en el primer cuadro la opcin de Cliente.

Para este ejemplo, en el primer cuadro de lista los valores se los indico a mano:
En la pestaa Eventos Al hacer clic, deberemos poner este cdigo:
De tal manera que si pulsamos sobre Cliente en el cuadro Buscar por: nos quedara as:
Nos fijamos y nos indica (crculo rojo) cuntos registros encuentra.
Para el segundo cuadro de lista

en la pestaa Eventos Al hacer click, deberemos poner este cdigo:

Y por ltimo, nos queda indicarle al campo por el que buscamos que nos muestre los resultados
segn lo indicado en el mismo, para ello,
en la pestaa Eventos Despus de actualizar, deberemos poner este cdigo. Nota: Como el
cdigo de este evento es muy extenso se ha optado por no copiarlo en el artculo por lo que te
aconsejo que te descargues el ejemplo y lo veas funcionar.
Lo cual, y siguiendo nuestro ejemplo si yo marco en Cliente y despus por Nombre, y ponemos ca
y pulsamos Intro, ste ser el resultado:
Y por qu sucede esto? Porque segn el cdigo que le hemos indicado esos son los registros que
contienen las letras ca dentro del campo Nombre (marcado en amarillo)

Lo que acabo de resaltar en negrita es lo que busca dentro de la tabla Clientes, aquellos que NO son
Histricos ((([Clientes].[Historico])=0)) y que dentro del campo Nombre coincida en cualquier
parte de la longitud del mismo like * & Busca.Text & * con lo que se haya puesto en el campo
que bsqueda. Lo importante es y como ya se ha explicado en otro post de este blog son los
asteriscos (*) delante y detrs del campo que hace de bsqueda. Si os fijis, la coincidencia puede
estar al principio, en medio o al final, pero todas ellas se vern en el buscador.

2) Abrir el registro desde el buscador.

En esta segunda parte y ya sobre los resultados arrojados por el buscador voy a indicar qu hacer
para que se abra el formulario en concreto y sobre ese registro en concreto. Para ello en el cuadro
de lista que nos muestra los registros encontrados en la pestaa Eventos Al hacer doble clic,
deberemos poner este cdigo:
Nos mostrar esta ventana:
Con lo que habris podido comprobar que me abre la ventana de Clientes justo en el registro que
quiero visualizar.

3) Abrir el buscador desde el formulario de registros.

Si observis el formulario anterior tiene un botn el cual si lo pulsamos nos mostrar nuestro
buscador con el cuadro seleccionado, los campos a buscar y los registros que hay. Para ello en el
cuadro de propiedades en la pestaa Eventos Al hacer clic, deberemos poner este cdigo:
Y tras pulsarlo nos mostrar esto:

Como no quiero hacer esto mucho ms extensivo, en el ejemplo hay cuatro casos diferentes
(Cliente, Escrito, Gasto, Organo/Tribunal), y as podris ver cmo funciona ya que tiene cada parte
bien diferenciada.

También podría gustarte