Professional Documents
Culture Documents
La ruta (y nombre) de cada una de las BD's en las que vamos a realizar la bsqueda.
El nombre de la tabla que contiene la informacin donde queremos buscar.
El nombre del campo que contiene los datos donde queremos buscar.
Vistame en http://neckkito.siliconproject.com.ar
En el mismo directorio donde tenemos la BD creamos una nueva carpeta, a la que llamaremos
BDsAntiguas (esto no sera necesario si vamos a utilizar rutas absolutas).
Copiamos nuestra BD y la pegamos dos veces dentro de <BDsAntiguas>. A la primera copia la
llamamos Ejercicio2011.mdb y a la segunda Ejercicio2012.mdb2
A continuacin he rellenado la tabla TDatos de cada una de las BD's con algunos registros
inventados. Para que os hagis una idea os muestro algunos de estos registros:
Como estoy desarrollando el ejemplo sobre Access 2003 yo utilizo la extensin mdb. Lgicamente, si vosotros trabajis con Access
2007 2010, la extensin que deberis utilizar es accdb.
Vistame en http://neckkito.siliconproject.com.ar
Cmo vamos a rellenar la tabla? Pues eso va a depender de si estamos utilizando rutas
absolutas o rutas relativas.
Si utilizamos rutas absolutas debemos indicar la ruta
completa donde tenemos las BD's. Supongamos que las
tenemos en una carpeta llamada <MisBDs>, que est en la
carpeta <Trabajos>, que a su vez est en la unidad C.
Luego deberamos rellenar la tabla con los siguientes datos:
Si utilizamos rutas relativas (os recuerdo que, en este sentido, estoy queriendo decir que las
BD's se hallan dentro de una carpeta que est en el mismo directorio donde tenemos la BD
principal), y aplicado a este ejemplo, deberamos rellenarla simplemente con el nombre de la
carpeta. Es decir:
Tambin os recuerdo que yo estoy utilizando Access 2003, y de ah que utilice la extensin
mdb. Si usamos una versin posterior de Access deberamos indicar la extensin correcta, esto
es, accdb
3
4
Para asignar un nombre a un control lo que debemos hacer es sacar las propiedades de ese control e irnos a la Pestaa Otras
Nombre. Ah escribimos el nombre que queramos.
Para generar cdigo debemos sacar las propiedades del control Pestaa Eventos, y nos situamos en la parte blanca a la
derecha del evento que queremos programar. Veremos un pequeo botn de puntos suspensivos. Si hacemos click sobre l nos
aparecer una ventana que nos pedir qu operacin deseamos realizar. Le indicamos que queremos generar cdigo.
Vistame en http://neckkito.siliconproject.com.ar
Como podemos ver el botn lo nico que hace es reclamar la informacin al usuario para, a
continuacin, realizar una llamada a un procedimiento que explicaremos a continuacin.
Para registrar una referencia debemos irnos, en el editor de VB, a Men Herramientas Referencias... Se nos abrir una
ventana mostrndonos todas las referencias disponibles. Buscamos la que nos interese, marcamos su check y aceptamos.
Vistame en http://neckkito.siliconproject.com.ar
Vistame en http://neckkito.siliconproject.com.ar
sol_err:
If Err.Number = 3044 Then 'No encontramos la ruta
MsgBox "No se encuentra la ruta a la base de datos", vbCritical, "ERROR"
Resume Salida
End If
If Err.Number = 3024 Then 'No encontramos la BD
MsgBox "No se encuentra la base de datos", vbCritical, "ERROR"
Else
MsgBox "Se ha producido el error " & Err.Number & " - " & Err.Description,
vbCritical, "ERROR"
End If
End Sub
Abro la tabla TDatos de esta primera BD que examino y recorro los registros (a travs de
rstTDatos)
Cuando acabo con los registros de TRutas me centro en la BD actual, realizando el mismo
proceso de lectura (de TDatos) y de escritura (de TResultados).
La bsqueda del valor la he hecho utilizando la funcin InStr(), que, para entendernos,
6
Vistame en http://neckkito.siliconproject.com.ar
funciona en este caso similar a un LIKE. Sabemos (y si no lo sabamos lo sabremos ahora) que
si InStr() devuelve el valor 0 (cero). Por eso yo utilizo el IF diciendo que si devuelve un valor
distinto de cero (<>0) es porque se ha producido alguna coincidencia, y por tanto s debo
escribir ese valor
como resultado.
Por
'Abrimos el formulario de resultados en modo slo lectura
DoCmd.OpenForm "NombreFormulario", , , , acFormReadOnly
Vistame en http://neckkito.siliconproject.com.ar