Usando Escaner
Usando Escaner
Usando Escaner
Qu pasa si no la tenemos?
En la BD que acompaa a este ejemplo tenis tambin el archivo wiaaut.dll. Si no tenis esa
referencia hay que incorporarla a nuestro sistema. Lo que tenemos que hacer es lo siguiente:
Copiamos esa dll en nuestro PC, en la ruta donde tengamos el directorio de Windows, dentro
de
la
carpeta
System32.
Nos
tiene
que
quedar
algo
as
como
C:\Windows\System32\wiaaut.dll.
Nos vamos al botn de inicio de nuestro PC y ejecutamos una ventana de MS-DOS
(ejecutamos un cmd, vamos). Nos situamos en la ruta del System32 y escribimos esta lnea de
comandos:
regsrv32 wiaaut.dll
1
Vistame en http://neckkito.siliconproject.com.ar
Una vez hecho esto volvemos a realizar el proceso desde el principio de este apartado para
buscar esa referencia en el VBE y registrarla.
Y YA AL EJEMPLO... DE QU VA LA COSA?
El ejemplo es un ejemplo simplificado, en el sentido de que lo que interesa es ver cmo
manejar el cdigo para obtener respuesta del escner. Si tenemos las bases claras,
tericamente, no deberamos tener ninguna complicacin a la hora de adaptarlo a otras
situaciones, siempre y cuando tengamos unos conocimientos mnimos de Access y VBA.
La idea es tener una tabla que nos recoja simplemente el nombre del archivo de imagen.
Adems, vamos a suponer que, en la carpeta donde tenemos la base de datos, hay tambin
una carpeta llamada ImgScan donde van a parar todas las imgenes que vayamos a
escanear.
Aadir tambin que vamos a considerar que todas las imgenes tienen, por defecto, la
extensin jpg.
Vistame en http://neckkito.siliconproject.com.ar
Como utilizo un Access 2013, tened en cuenta que el campo texto corto es un campo texto
en versiones anteriores, y que texto largo es un campo memo en versiones anteriores.
Sobre esta tabla nos creamos un formulario que llamaremos FDatos.
Junto al campo [Documento] nos creamos dos botones de comando que llamaremos
cmdAbreEscaner y cmdAbreDocumento, respectivamente 2.
En el evento Al hacer clic del primer botn vamos a generar el siguiente cdigo 3:
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 clic 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
Si os fijis el cdigo hace una llamada a una funcin, que es
creoRuta(). En el mdulo asociado a nuestro formulario,
bajo la/s lnea/s Option, vamos a definir esa funcin,
escribiendo lo siguiente (en teora, si no tenemos nada
ms, ese cdigo nos quedar sobre el bloque de cdigo que
acabamos de escribir para cmdAbreEscaner.
Ahora slo queda la programacin del botn para abrir la imagen que ya tengamos escaneada,
cdigo bastante simple. As, en el evento Al hacer clic de nuestro segundo botn de comando
generamos el siguiente cdigo:
Creo que, dado que todos los cdigos estn comentados, no hay mucho ms que aadir.
Simplemente remarcaros, por si no os habis dado cuenta, que dado que tanto el cdigo de un
botn como del otro requieren la construccin de la ruta (el primero para guardarlo, el
segundo para abrirlo), en lugar de repetir cdigo creando la ruta he separado esa parte en una
funcin a la cual ambos procedimientos hacen la llamada.
En este caso la creacin de la ruta no lleva aparejada mayor dificultad, pero imaginaos que,
hipotticamente, la creacin de la ruta requiriera muchas lneas de cdigo. Si no lo
separramos tendramos que escribir lo mismo dos veces, con el aumento de dificultad de
lectura de cada uno de los cdigos, mientras que si cogemos la costumbre de sacar fuera los
elementos que son reciclables el cdigo nos quedar mucho ms limpio y entendible (y, con
toda probabilidad, ms fcil de depurar).
Vistame en http://neckkito.siliconproject.com.ar
Vistame en http://neckkito.siliconproject.com.ar